Video encoding method and video encoding for signaling sao parameters

ABSTRACT

The present disclosure relates to signaling of sample adaptive offset (SAO) parameters determined to minimize an error between an original image and a reconstructed image in video encoding and decoding operations. An SAO decoding method includes obtaining context-encoded leftward SAO merge information and context-encoded upward SAO merge information from a bitstream of a largest coding unit (MCU); obtaining SAO on/off information context-encoded with respect to each color component, from the bitstream; if the SAO on/off information indicates to perform SAO operation, obtaining absolute offset value information for each SAO category bypass-encoded with respect to each color component, from the bitstream; and obtaining one of band position information and edge class information bypass-encoded with respect to each color component, from the bitstream.

CROSS-REFERENCE TO RELATED PATENT APPLICATION

The present application is a continuation application of U.S. patentapplication Ser. No. 14/415,454, filed on Jan. 16, 2015, in the U.S.Patent and Trademark Office, which is a national stage application under35 U.S.C. §371 of International Application No. PCT/KR2013/006343, filedon Jul. 16, 2013, which claims the benefit of U.S. ProvisionalApplication No. 61/672,166, filed on Jul. 16, 2012, in the U.S. Patentand Trademark Office, the disclosures of which are incorporated hereinby reference in their entireties.

BACKGROUND 1. Field

Methods and apparatuses consistent with exemplary embodiments of thepresent application relate to adjusting reconstructed pixel values byoffsets determined adaptively to minimize an error between an originalimage and a reconstructed image in video encoding and decodingoperations.

2. Description of Related Art

As hardware for reproducing and storing high resolution or high qualityvideo content is being developed, a video codec is increasingly neededfor effectively encoding or decoding the high resolution or high qualityvideo content. According to a conventional video codec, a video isencoded according to a limited encoding method based on a macroblockhaving a predetermined size.

Image data of the space domain is transformed into coefficients of thefrequency domain via frequency transformation. According to a videocodec, an image is split into blocks having a predetermined size,discrete cosine transformation (DCT) is performed on each block, andfrequency coefficients are encoded in block units, for rapid calculationof frequency transformation. Compared with image data of the spacedomain, coefficients of the frequency domain are easily compressed. Inparticular, because an image pixel value of the space domain isexpressed according to a prediction error via inter prediction or intraprediction of a video codec, when frequency transformation is performedon the prediction error, a large amount of data may be transformed to 0.According to a video codec, an amount of data may be reduced byreplacing data that is consecutively and repeatedly generated withsmall-sized data.

SUMMARY Aspects of exemplary embodiments relate to signaling of sampleadaptive offset (SAO) parameters determined to minimize an error betweenan original image and a reconstructed image in video encoding anddecoding operations.

According to an aspect of an exemplary embodiment, there is provided asample adaptive offset (SAO) decoding method including obtainingcontext-encoded leftward SAO merge information and context-encodedupward SAO merge information from a bitstream of a largest coding unit(MCU); obtaining SAO on/off information context-encoded with respect toeach color component, from the bitstream; if the SAO on/off informationindicates to perform SAO operation, obtaining absolute offset valueinformation for each SAO category bypass-encoded with respect to eachcolor component, from the bitstream; and obtaining one of band positioninformation and edge class information bypass-encoded with respect toeach color component, from the bitstream.

The obtaining of the SAO on/off information may include, if the SAOon/off information indicates to perform SAO operation, further obtainingedge band identification information encoded in a bypass mode withrespect to each color component, from the bitstream, and contextdecoding may be performed on the SAO on/off information in a first binof SAO type information of the MCU, and bypass decoding may be performedon remaining bits of the SAO type information other than the SAO on/offinformation.

The obtaining of the band position information or the edge classinformation may include, if the obtained edge band identificationinformation indicates a band type, obtaining the band positioninformation bypass-encoded with respect to each color component, fromthe bitstream, the obtaining of the band position information mayinclude, if the absolute offset value information obtained for each SAOcategory is not 0, obtaining the band position information and offsetsign information bypass-encoded with respect to each color component,from the bitstream, and the band position information may be lastlyobtained from among SAO parameters of the MCU.

The obtaining of the band position information or the edge classinformation may include, if the obtained edge band identificationinformation indicates an edge type, obtaining the edge class informationbypass-encoded with respect to each color component, from the bitstream,and the edge class information may include edge class information for aluma component and edge class information for a first chroma component,and the edge class information for the first chroma component may beequally applied to a second chroma component.

The SAO on/off information and the edge band identification informationfor a first chroma component may be equally applied to a second chromacomponent, and the leftward SAO merge information and the upward SAOmerge information may be commonly applied to a luma component, and thefirst and second chroma components of the MCU.

The obtaining of the leftward SAO merge information and the upward SAOmerge information may include determining a context-based probabilitymodel of the leftward SAO merge information, performing entropy decodingby using the determined probability model of the leftward SAO mergeinformation, and thus reconstructing the leftward SAO merge information;and determining a context-based probability model of the upward SAOmerge information, performing entropy decoding by using the determinedprobability model of the upward SAO merge information, and thusreconstructing the upward SAO merge information, and the obtaining ofthe SAO on/off information may include determining a context-basedprobability model of the SAO on/off information, performing entropydecoding by using the determined probability model of the SAO on/offinformation, and thus reconstructing the SAO on/off information.

The obtaining of the absolute offset value information may includedetermining a context-based probability model of the absolute offsetvalue information, performing entropy decoding without using thedetermined probability model of the absolute offset value information,and thus reconstructing the absolute offset value information, theobtaining of the offset sign information and the band positioninformation may include performing entropy decoding without using acontext-based probability model of the offset sign information, and thusreconstructing the offset sign information; and performing entropydecoding without using a context-based probability model of the bandposition information, and thus reconstructing the band positioninformation, and the obtaining of the edge class information may includeperforming entropy decoding without using a context-based probabilitymodel of the edge class information, and thus reconstructing the edgeclass information.

According to aspects of the present disclosure, there is provided asample adaptive offset (SAO) encoding method including outputting 1 bitof leftward SAO merge information and 1 bit of upward SAO mergeinformation of a largest coding unit (MCU), generated by performingcontext encoding on each of the leftward SAO merge information and theupward SAO merge information; outputting 1 bit of SAO on/off informationgenerated by performing context encoding on the SAO on/off informationwith respect to each color component; if the SAO on/off informationindicates to perform SAO operation, outputting a bitstream of absoluteoffset value information generated by performing bypass encoding on theabsolute offset value information with respect to each color componentand each SAO category; and outputting a remaining bitstream generated byperforming bypass encoding on one of band position information and edgeclass information with respect to each color component.

The outputting of the 1 bit of the SAO on/off information may include,if the SAO on/off information indicates to perform SAO operation,further outputting 1 bit of edge band identification informationgenerated by performing bypass encoding on the edge band identificationinformation with respect to each color component, and context encodingmay be performed on the SAO on/off information in a first bin of SAOtype information of the MCU, and bypass encoding may be performed onremaining bits of the SAO type information other than the SAO on/offinformation.

The outputting of the remaining bitstream may include, if the edge bandidentification information indicates a band type, outputting a bitstreamof the band position information generated by performing bypass encodingon the band position information with respect to each color component,the outputting of the band position information may include, if theabsolute offset value information for each SAO category is not 0,outputting the generated bitstream of the band position information anda bitstream of offset sign information generated by performing bypassencoding on the offset sign information, and the band positioninformation may be lastly output from among SAO parameters of the MCU.

The outputting of the remaining bitstream may include, if the edge bandidentification information indicates an edge type, outputting abitstream of the edge class information generated by performing bypassencoding on the edge class information with respect to each colorcomponent, and

According to aspects of the present disclosure, there is provided asample adaptive offset (SAO) decoding apparatus including an SAO contextdecoder for obtaining context-encoded leftward SAO merge information andupward SAO merge information and obtaining SAO on/off informationcontext-encoded with respect to each color component, from a bitstreamof a largest coding unit (MCU); an SAO bypass decoder for, if the SAOon/off information indicates to perform SAO operation, obtainingabsolute offset value information bypass-encoded with respect to eachcolor component and each SAO category, and obtaining one of bandposition information and edge class information bypass-encoded withrespect to each color component, from the bitstream; and an SAO operatorfor, if the SAO on/off information indicates to perform SAO operation,adjusting reconstructed values of the MCU for each SAO category based onthe absolute offset value information by using the obtained information.

According to aspects of the present disclosure, there is provided asample adaptive offset (SAO) encoding apparatus including an SAOoperator for performing SAO operation on a largest coding unit (MCU); anSAO context encoder for generating and outputting a bitstream ofleftward SAO merge information and a bitstream of upward SAO mergeinformation of the MCU by performing context encoding on each of theleftward SAO merge information and the upward SAO merge information, andgenerating and outputting 1 bit of SAO on/off information by performingcontext encoding on the SAO on/off information with respect to eachcolor component; and an SAO bypass encoder for, if the SAO on/offinformation indicates to perform SAO operation, generating andoutputting a bitstream of absolute offset value information byperforming bypass encoding on the absolute offset value information withrespect to each color component and each SAO category, and generatingand outputting a remaining bitstream by performing bypass encoding onone of band position information and edge class information with respectto each color component.

According to aspects of the present disclosure, there is provided acomputer-readable recording medium having recorded thereon a computerprogram for executing the above method.

In methods of encoding and decoding sample adaptive offset (SAO)parameters, according to various exemplary embodiments of the presentdisclosure, because context encoding and context decoding are performedon only SAO merge information and SAO on/off information from among theSAO parameters, and bypass encoding and bypass decoding are performed ona remaining bitstream, a total amount of calculation for decoding theSAO parameters may be reduced.

Also, from among the SAO parameters, because some parameters aredetermined differently with respect to each color component and someparameters are set to be the same with respect to first and secondchroma components, or with respect to luma, and first and second chromacomponents, a total bit length of the SAO parameters may be reduced andthe amount of data to be parsed may also be reduced.

Furthermore, by reducing iterations of encoding and decoding operations,as well as reducing switching of bypass encoding and decodingoperations, the efficiency of overall entropy encoding and decodingoperations on the SAO parameters may be improved.

BRIEF DESCRIPTION OF THE DRAWINGS

FIGS. 1A and 1B respectively illustrate a block diagram of a sampleadaptive offset (SAO) encoding apparatus and a flowchart of an SAOencoding method, according to exemplary embodiments of the presentdisclosure;

FIGS. 2A and 2B respectively illustrate a block diagram of an SAOdecoding apparatus and a flowchart of an SAO decoding method, accordingto exemplary embodiments of the present disclosure;

FIG. 3 illustrates a block diagram of a video decoding apparatusaccording to exemplary embodiments of the present disclosure;

FIG. 4 illustrates a table showing edge classes of edge types, accordingto an exemplary embodiment of the present disclosure;

FIGS. 5A and 5B respectively illustrate a table and a graph showingcategories of edge types, according to exemplary embodiments of thepresent disclosure;

FIG. 6A illustrates a diagram showing adjacent maximum coding units(MCUs) referred to merge SAO parameters with a current MCU, according toexemplary embodiments of the present disclosure;

FIG. 6B illustrates a diagram of a process of performing entropyencoding on SAO parameters, according to another exemplary embodiment ofthe present disclosure;

FIG. 7A illustrates SAO syntax of a coding unit, according to exemplaryembodiments of the present disclosure;

FIGS. 7B and 7C illustrate SAO syntax of a coding unit, according toother exemplary embodiments of the present disclosure;

FIG. 8 illustrates a block diagram of a video encoding apparatus basedon coding units having a tree structure, according to exemplaryembodiments of the present disclosure;

FIG. 9 illustrates a block diagram of a video decoding apparatus basedon coding units having a tree structure, according to exemplaryembodiments of the present disclosure;

FIG. 10 illustrates a diagram for describing a concept of coding unitsaccording to exemplary embodiments of the present disclosure;

FIG. 11 illustrates a block diagram of an image encoder based on codingunits, according to exemplary embodiments of the present disclosure;

FIG. 12 illustrates a block diagram of an image decoder based on codingunits, according to exemplary embodiments of the present disclosure;

FIG. 13 illustrates a diagram illustrating deeper coding units accordingto depths, and partitions, according to exemplary embodiments of thepresent disclosure;

FIG. 14 illustrates a diagram for describing a relationship between acoding unit and transformation units, according to exemplary embodimentsof the present disclosure;

FIG. 15 illustrates a diagram for describing encoding information ofcoding units corresponding to a coded depth, according to exemplaryembodiments of the present disclosure;

FIG. 16 illustrates a diagram of deeper coding units according todepths, according to exemplary embodiments of the present disclosure;

FIGS. 17 through 19 respectively illustrate diagrams for describing arelationship between coding units, prediction units, and transformationunits, according to exemplary embodiments of the present disclosure;

FIG. 20 illustrates a diagram for describing a relationship between acoding unit, a prediction unit, and a transformation unit, according toencoding mode information;

FIG. 21 illustrates a diagram of a physical structure of a disc in whicha program is stored, according to exemplary embodiments of the presentdisclosure;

FIG. 22 illustrates a diagram of a disc drive for recording and readinga program by using a disc;

FIG. 23 illustrates a diagram of an overall structure of a contentsupply system for providing a content distribution service;

FIGS. 24 and 25 respectively illustrate diagrams of an externalstructure and an internal structure of a mobile phone to which a videoencoding method and a video decoding method may be applied, according toexemplary embodiments of the present disclosure;

FIG. 26 illustrates a diagram of a digital broadcast system to which acommunication system is applied, according to exemplary embodiments ofthe present disclosure; and

FIG. 27 illustrates a diagram illustrating a network structure of acloud computing system using a video encoding apparatus and a videodecoding apparatus, according to exemplary embodiments of the presentdisclosure.

DETAILED DESCRIPTION OF EXEMPLARY EMBODIMENTS

Hereinafter, a video encoding technique and a video decoding techniqueusing a sample adaptive offset (SAO) operation based on pixelclassification, according to exemplary embodiments of the presentdisclosure, will be described with reference to FIGS. 1A through 7C.Also, the SAO operation based on pixel classification in a videoencoding technique and a video decoding technique based on coding unitshaving a tree structure, according to exemplary embodiments of thepresent disclosure, will be described with reference to FIGS. 8 through20.

Hereinafter, an ‘image’ may denote a still image or a moving image of avideo, or a video itself.

Hereinafter, expressions such as “at least one of” do not necessarilymodify an entirety of a following list and do not necessarily modifyeach member of the list, such that “at least one of a, b, and c” shouldbe understood as including only one of a, only one of b, only one of c,or any combination of a, b, and c.

A video encoding technique and a video decoding technique using an SAOoperation based on pixel classification, according to exemplaryembodiments of the present disclosure, will now be described withreference to FIGS. 1A through 7C. An SAO encoding apparatus 10 and anSAO decoding apparatus 20 illustrated in FIGS. 1A and 2A, perform SAOoperations in FIGS. 1B and 2B to minimize an error between an originalpixel and a reconstructed pixel, and transmit and receive SAO parametersfor performing an SAO operation.

The SAO encoding apparatus 10 using an SAO operation classifies pixelsof each image block into predetermined pixel groups, allocates eachpixel to a corresponding pixel group, and encodes an offset valueindicating an average value of errors between original pixels andreconstructed pixels included in the same pixel group.

Samples are signaled between the SAO encoding apparatus 10 and the SAOdecoding apparatus 20. In other words, the SAO encoding apparatus 10 mayencode samples generated by performing video encoding and may transmitthe samples as a bitstream, and the SAO decoding apparatus 20 may parseand reconstruct the samples from the received bitstream.

The SAO encoding apparatus 10 and the SAO decoding apparatus 20 signalSAO parameters for SAO operation to minimize errors between originalpixels and reconstructed pixels by adjusting reconstructed pixel valuesby offsets determined based on pixel classification. Offset values areencoded, transmitted, and received as SAO parameters between the SAOencoding apparatus 10 and the SAO decoding apparatus 20, and then aredecoded from the SAO parameters.

Accordingly, the SAO decoding apparatus 20 may generate reconstructedpixels of each image block by decoding the received bitstream, mayadjust the reconstructed pixels by offset values reconstructed from thebitstream, and thus may generate a reconstructed image having aminimized error from an original image.

Operation of the SAO encoding apparatus 10 for performing an SAOoperation will be described in detail with reference to FIGS. 1A and 1B,and operation of the SAO decoding apparatus 20 for performing an SAOoperation will be described in detail with reference to FIGS. 2A and 2B.

FIGS. 1A and 1B respectively illustrate a block diagram of the SAOencoding apparatus 10 and a flowchart of an SAO encoding method,according to exemplary embodiments of the present disclosure.

The SAO encoding apparatus 10 includes an SAO operator 12 and an entropyencoder 14. The entropy encoder 14 includes an SAO context encoder 16and an SAO bypass encoder 18 for encoding SAO parameters.

The SAO encoding apparatus 10 receives an input of images of a video,for example, slices, splits each image into blocks, and encodes eachblock. A block may have a square shape, a rectangular shape, or anarbitrary geometrical shape, and is not limited to a data unit having apredetermined size. The block may be a maximum coding unit (MCU) (alsoreferred to herein as a largest coding unit LCU), having a maximum sizeamong coding units, or a coding unit among coding units having a treestructure. Video encoding and decoding methods based on coding unitshaving a tree structure will be described below with reference to FIGS.8 through 20.

The SAO encoding apparatus 10 may split each input image into MCUs, andmay output resultant data generated by performing prediction,transformation, and entropy encoding on samples of each MCU, as abitstream. Samples of an MCU may be pixel value data of pixels includedin the MCU.

The SAO encoding apparatus 10 may individually encode MCUs of a picture.The SAO encoding apparatus 10 may encode a current MCU based on codingunits split from the current MCU and having a tree structure.

In order to encode the current MCU, the SAO encoding apparatus 10 mayencode samples by performing intra prediction, inter prediction,transformation, and quantization on each of coding units included in thecurrent MCU and having a tree structure.

The SAO encoding apparatus 10 may reconstruct the encoded samplesincluded in the current MCU by performing inverse quantization, inversetransformation, and inter prediction or motion compensation on each ofthe coding units having a tree structure to decode the coding units. Areconstructed image may be generated by encoding and then decodingprevious slices of the encoded samples. A reconstructed image of aprevious slice may be referenced to perform inter prediction on acurrent slice.

In order to minimize an error between original pixels, before thecurrent MCU is encoded, and reconstructed pixels, after the current MCUis decoded, the SAO operator 12 may determine offset values indicatingdifference values between the original pixels and the reconstructedpixels.

The SAO operator 12 may perform an SAO operation on each colorcomponent. For example, with respect to a YCrCb color image, an SAOoperation may be performed on each of a luma component (Y component) andfirst and second chroma components (Cr and Cb components).

The SAO operator 12 may determine whether to perform an SAO operation onthe luma component of a current slice. The SAO operator 12 may determinewhether to perform an SAO operation on the first and second chromacomponents of the current slice, wherein the first and second chromacomponents are regarded as the same component. In other words, if an SAOoperation is performed on the first chroma color component, the SAOoperation may also be performed on the second chroma component. If anSAO operation is not performed on the first chroma color component, theSAO operation may not be performed on the second chroma component,either.

The entropy encoder 14 may generate SAO parameters of a current sliceand may include the SAO parameters in a header of the current slice.

The SAO operator 12 may determine whether to perform an SAO operation oneach MCU. According to the determination of the SAO operator 12, the SAOcontext encoder 16 may generate luma SAO on/off information indicatingwhether to perform SAO operation on the luma component. Also, accordingto the determination of the SAO operator 12, the SAO context encoder 16may generate chroma SAO on/off information indicating whether to performSAO operation on the first and second chroma components.

The SAO context encoder 16 may include luma SAO on/off information andchroma SAO on/off information in the SAO parameters of an MCU.

The SAO operator 12 may determine the offset values with respect to eachMCU. The SAO parameters including the offset values, an SAO type, and anSAO class may also be determined with respect to each MCU.

The SAO operator 12 may determine the SAO type according to a pixelvalue classification method of the current MCU. The SAO type may bedetermined as an edge type or a band type. According to a pixel valueclassification method of a current block, it may be determined whetherto classify pixels of the current block according to the edge type orthe band type.

If the SAO type is the edge type, according to a direction and a shapeof edges formed between the reconstructed pixels of the current MCU andtheir adjacent pixels, an offset between the reconstructed pixels andthe original pixels may be determined.

If the SAO type is the band type, from among a plurality of bandsobtained by dividing a total range of pixel values of the reconstructedpixels of the current MCU, an offset between the reconstructed pixelsand the original pixels included in each band may be determined. Thebands may be obtained by evenly (i.e., equally) or unevenly (i.e.,unequally) dividing the total range of the pixel values.

Accordingly, the SAO operator 12 may determine the SAO type of thecurrent MCU, which indicates the edge type or the band type, based onspatial characteristics of pixel values of the current MCU.

The SAO operator 12 may determine an SAO class of each of thereconstructed pixels according to the SAO type of the current MCU. TheSAO class may be determined as an edge class or a band class.

With respect to the edge type, the edge class may indicate a directionof edges formed between the reconstructed pixels and their adjacentpixels. The edge class may indicate an edge direction of 0°, 90°, 45°,or 135°.

If the SAO type is the edge type, the SAO operator 12 may determine theedge class of each of the reconstructed pixels of the current MCU.

With respect to the band type, from among a plurality of bands that area predetermined number of continuous pixel value periods obtained bydividing a total range of pixel values of the current MCU, the bandclass may indicate positions of the bands to which pixel values of thereconstructed pixels belong.

For example, with respect to a sample having a pixel value of 8 bits, atotal range of the pixel value is from 0 to 255 and the pixel value maybe classified into a total of 32 bands. In this case, from among the 32bands, a predetermined number of bands to which pixel values of thereconstructed pixels belong may be determined. The band class mayindicate a start position of a predetermined number of continuous bands(a left start point) by using one of band indices from 0 to 31.

With respect to the edge type, the reconstructed pixels of the currentMCU may be classified into a predetermined number of categoriesaccording to the shape of edges formed between the reconstructed pixelsand their adjacent pixels. For example, according to four edge shapes,such as a local valley of a concave edge, a curved corner of a concaveedge, a curved corner of a convex edge, and a local peak of a convexedge, the reconstructed pixels, may be classified into four categories.According to an edge shape of each of the reconstructed pixels of thecurrent MCU, one of the four categories may be determined.

With respect to the band type, according to positions of bands to whichpixel values of the reconstructed pixels of the current MCU belong, thereconstructed pixels may be classified into a predetermined number ofcategories. For example, according to band indices of four continuousbands from a start position indicated by the band class, i.e., a startpoint of the leftmost band, the reconstructed pixels may be classifiedinto four categories. According to one of the four bands, to which eachof the reconstructed pixels of the current MCU belongs, one of the fourcategories may be determined.

The SAO operator 12 may determine a category of each of thereconstructed pixels of the current MCU. With respect to thereconstructed pixels of the current MCU, which belong to the samecategory, the SAO operator 12 may determine offset values by usingdifference values between the reconstructed pixels and the originalpixels. In each category, an average of the difference values betweenthe reconstructed pixels and the original pixels, i.e., an average errorof the reconstructed pixels, may be determined as an offset valuecorresponding to a current category. The SAO operator 12 may determinean offset value of each category and may determine offset values of allcategories as the offset values of the current MCU.

For example, if the SAO type of the current MCU is the edge type and thereconstructed pixels are classified into four categories according toedge shapes, or if the SAO type of the current MCU is the band type andthe reconstructed pixels are classified into four categories accordingto indices of four continuous bands, the SAO operator 12 may determinefour offset values by determining an average error between thereconstructed pixels and the original pixels, which belong to each ofthe four categories.

Each of the offset values may be greater than or equal to a presetminimum value and may be less than or equal to a preset maximum value.

The entropy encoder 14 may encode and output the SAO parametersincluding the SAO type, the SAO class, and the offset values of thecurrent MCU, which are determined by the SAO operator 12.

The SAO parameters of each block may include an SAO type and offsetvalues of the block. Among the SAO type, an off type, the edge type, orthe band type may be output.

If the SAO type is the off type, it may be indicated that an SAOoperation is not applied to the current MCU. In this case, remaining SAOparameters of the current MCU may not necessarily be encoded.

If the SAO type is the edge type, the SAO parameters may include offsetvalues individually corresponding to edge classes. Otherwise, if the SAOtype is the band type, the SAO parameters may include offset valuesindividually corresponding to bands. In other words, the entropy encoder14 may encode the SAO parameters of each block.

As described above, the SAO operator 12 may perform an SAO operation oneach of MCUs of an image.

According to entropy encoding methods, the SAO parameters may beclassified into parameters to be encoded based on context-based entropycoding, and parameters to be encoded in a bypass mode.

The context-based entropy coding method may include a series ofoperations, such as binarization for transforming symbols such as theSAO parameters into a bitstream, and context-based arithmetic encodingon the bitstream. Context adaptive binary arithmetic coding (CABAC) isbroadly used an example of the context-based arithmetic encoding method.According to context-based arithmetic encoding and decoding, each bit ofa symbol bitstream may be regarded as a bin of context, and each bitposition may be mapped to a bin index. A length of the bitstream, i.e.,a length of bins, may vary according to sizes of symbol values. Forcontext-based arithmetic encoding and decoding, context-basedprobability modeling needs to be performed on symbols.

Context-based probability modeling needs to be performed on theassumption that a coding bit of a current symbol is probabilisticallypredicted based on previously encoded symbols. For context-basedprobability modeling, context of each bit position of a symbolbitstream, i.e., each bin index, needs to be updated. Here, probabilitymodeling refers to a process of analyzing a probability that a value of0 or 1 is generated in each bin. A process of updating context byreflecting a result of analyzing a probability of each bit of thesymbols of a new block to the context may be repeated in every block. Ifthe above-described probability modeling is repeated, a probabilitymodel in which each bin is matched to a probability may be determined.

Accordingly, with reference to the context-based probability model, anoperation of selecting and outputting a code corresponding to currentcontext may be performed with respect to each bit of a binarizedbitstream of current symbols, thereby performing context-based entropyencoding.

An operation of determining a context-based probability model of eachbin of symbols for encoding based on context-based entropy codingrequires large amounts of calculation and time. On the other hand, theentropy encoding in a bypass mode includes an entropy encoding operationusing a probability model without considering the context of symbols.

The entropy encoder 14 may include the SAO context encoder 16 forperforming encoding based on context-based entropy coding (hereinafterreferred to as ‘context encoding’) on the SAO parameters, and the SAObypass encoder 18 for performing entropy encoding in a bypass mode(hereinafter referred to as ‘bypass encoding’) on the SAO parameters.

The SAO context encoder 16 may perform context encoding on leftward SAOmerge information, upward SAO merge information, and SAO on/offinformation of an MCU.

The SAO bypass encoder 18 may perform bypass encoding on absolute offsetvalue information and band position information or edge classinformation with respect to each color component.

An example that the SAO context encoder 16 and the SAO bypass encoder 18output the SAO parameters will be described in detail below withreference to the flowchart of the SAO encoding method of FIG. 1B.

The SAO operator 12 may determine whether to perform SAO operation, anSAO method, and SAO parameters with respect to each MCU of a currentslice.

In operation 11, the SAO context encoder 16 may generate a 1-bit flag ofleftward SAO merge information by performing context encoding on theleftward SAO merge information of a current MCU. Also, the SAO contextencoder 16 may generate a 1-bit flag of upward SAO merge information byperforming context encoding on the upward SAO merge information of thecurrent MCU.

The entropy encoder 14 may determine whether to adopt SAO parameters ofleft and upper adjacent MCUs of a current MCU as the SAO parameters ofthe current MCU with respect to all color components, such as luma andchroma components without separating the luma and chroma components.

Initially, based on whether to predict the SAO parameters of the currentMCU by using the SAO parameters of the left MCU, the entropy encoder 14may generate leftward SAO merge information of the current MCU. In otherwords, without separating the luma component and the first and secondchroma components, the same leftward SAO merge information may begenerated.

Then, based on whether to predict the SAO parameters of the current MCUby using the SAO parameters of the upper MCU, the entropy encoder 14 maygenerate upward SAO merge information of the current MCU. Withoutseparating the luma component and the first and second chromacomponents, the same upward SAO merge information may be generated.

In operation 13, the SAO context encoder 16 may perform context encodingon SAO on/off information with respect to each color component. The SAOcontext encoder 16 may generate a 1-bit flag of the SAO on/offinformation generated due to context encoding.

The SAO operator 12 may allocate a first bit of SAO type information tothe SAO on/off information indicating whether to perform SAO operationon the current MCU. The SAO context encoder 16 may perform context-basedCABAC encoding on only a first bin of the SAO type information.

If the SAO on/off information indicates to perform the SAO operation,the SAO bypass encoder 18 may perform bypass encoding on edge bandidentification information with respect to each color component. The SAObypass encoder 18 may output 1 bit of the edge band identificationinformation generated due to bypass encoding.

The SAO bypass encoder 18 may allocate a second bit of the SAO typeinformation to the edge band identification information indicatingwhether to perform edge SAO operation or band SAO operation on thecurrent MCU. The SAO bypass encoder 18 may perform bypass-mode CABACencoding on a second bin of the SAO type information.

In other words, if SAO operation is performed, the entropy encoder 14may output the context-encoded flag of the SAO on/off information andthe bypass-encoded flag of the edge band identification information asthe SAO type information.

The SAO operator 12 may apply the same SAO on/off information to thefirst and second chroma components. Also, the SAO operator 12 may applythe same edge band identification information to the first and secondchroma components. Accordingly, the entropy encoder 14 may performentropy encoding on the SAO on/off information and the edge bandidentification information for the luma component and the first chromacomponent, and then may not perform entropy encoding again on the SAOon/off information and the edge band identification information for thesecond chroma component.

In operation 15, if the SAO on/off information indicates to perform theSAO operation, the SAO bypass encoder 18 may perform bypass encoding onabsolute offset value information for each SAO category and each colorcomponent. The SAO bypass encoder 18 may output a bitstream of theabsolute offset value information generated due to bypass encoding.

The SAO bypass encoder 18 may perform bypass encoding on the absoluteoffset value information for each of the luma component and the firstand second chroma components. Also, bypass encoding may be performed onthe absolute offset value information with respect to each of fourcategories and each color component.

The SAO encoding apparatus 10 may perform bypass-mode CABAC encoding onthe absolute offset value information from among the SAO parameters ofthe MCU. The absolute offset value information may indicate a valuewithin a range based on a bit depth of a video. For example, if the bitdepth corresponds to 8 bits, the absolute offset value may be a valueequal to or greater than 0 and equal to or less than 7. As anotherexample, if the bit depth corresponds to 10 bits, the absolute offsetvalue may be a value equal to or greater than 0 and equal to or lessthan 31.

In operation 17, the SAO bypass encoder 18 may perform bypass encodingon one of band position information and edge class information withrespect to each color component. A remaining bitstream of the SAO typeinformation other than the SAO on/off information and the edge bandidentification information may be allocated to the band positioninformation or the edge class information. The SAO bypass encoder 18 mayoutput the remaining bitstream of the band position information or theedge class information generated due to bypass encoding.

If the edge band identification information indicates a band type, theSAO bypass encoder 18 may perform bypass encoding on the band positioninformation with respect to each color component. The band positioninformation indicates a left start point of bands as an SAO class of aband type. The band position information may be determined as abitstream having a fixed bit length.

If the absolute offset value information for each SAO category is not 0,the SAO bypass encoder 18 may perform bypass encoding on offset signinformation. Accordingly, the SAO bypass encoder 18 may output thebypass-encoded bitstream of the offset sign information and the bandposition information as the remaining bitstream of the SAO typeinformation indicating a band SAO type. The SAO bypass encoder 18 maylastly output the band position information from among the SAOparameters of the MCU.

The offset sign information and the band position information of theband SAO type may be determined with respect to each of the lumacomponent and the first and second chroma components. Accordingly, theSAO bypass encoder 18 may perform bypass encoding on the offset signinformation and the band position information with respect to each ofthe luma component and the first and second chroma components. Abitstream of band class information generated due to bypass encoding maybe output as the remaining bitstream of the SAO type information.

If the edge band identification information indicates an edge type, theSAO bypass encoder 18 may perform bypass encoding on edge classinformation with respect to each color component. A bitstream of theedge class information generated due to bypass encoding may be output asthe remaining bitstream of the SAO type information.

The edge class information may be determined with respect to the lumacomponent and the first chroma component. The edge class informationdetermined with respect to the first chroma component may equally beapplied to the second chroma component. Accordingly, the SAO bypassencoder 18 may set the edge class information with respect to the lumacomponent and the first chroma component, and then may not set the edgeclass information again with respect to the second chroma component.

The SAO encoding apparatus 10 may include a central processor (CPU) forcollectively controlling the SAO operator 12, the entropy encoder 14,the SAO context encoder 16, and the SAO bypass encoder 18.Alternatively, the SAO operator 12, the entropy encoder 14, the SAOcontext encoder 16, and the SAO bypass encoder 18 may be driven by theirindividual processors that cooperatively operate to control the SAOencoding apparatus 10. Alternatively, an external processor outside theSAO encoding apparatus 10 may control the SAO operator 12, the entropyencoder 14, the SAO context encoder 16, and the SAO bypass encoder 18.

The SAO encoding apparatus 10 may include one or more memories forstoring input and output data of the SAO operator 12, the entropyencoder 14, the SAO context encoder 16, and the SAO bypass encoder 18.The SAO encoding apparatus 10 may include a memory controller formanaging data input and output to and from the memories.

In order to perform a video encoding operation including transformationand to output a result of the video encoding operation, the SAO encodingapparatus 10 may operate in association with an internal or externalvideo encoding processor. The internal video encoding processor of theSAO encoding apparatus 10 may be an independent processor for performinga video encoding operation. Also, the SAO encoding apparatus 10, acentral processing unit, or a graphic processing unit (GPU) may includea video encoding processor module to perform a basic video encodingoperation.

FIGS. 2A and 2B respectively illustrate a block diagram of an SAOdecoding apparatus 20 and a flowchart of an SAO decoding method,according to exemplary embodiments of the present disclosure.

The SAO decoding apparatus 20 includes an entropy decoder 22 and an SAOoperator 28. The entropy decoder 22 includes an SAO context decoder 24and an SAO bypass decoder 26.

The SAO decoding apparatus 20 receives a bitstream including encodeddata of a video. The SAO decoding apparatus 20 may parse encoded videosamples from the received bitstream, and may perform entropy decoding,inverse quantization, inverse transformation, prediction, and motioncompensation on each image block to generate reconstructed pixels.

The SAO decoding apparatus 20 may reconstruct a current slice bydecoding encoded symbols including encoded samples and encodedinformation of the current slice, which are obtained from the receivedbitstream. Thus, a reconstructed image may be generated.

Also, the SAO decoding apparatus 20 may receive offset values indicatingdifference values between original pixels and reconstructed pixels, andthe SAO operator 28 may minimize an error between an original image andthe reconstructed image. The SAO decoding apparatus 20 may receiveencoded data of each MCU of the video, and may reconstruct the MCU basedon coding units split from the MCU and having a tree structure. The SAOoperator 28 may perform an SAO operation on the MCU.

When the SAO decoding apparatus 20 performs SAO operation, initially,SAO parameters determined by the SAO encoding apparatus 10 that hasperformed SAO operation are required. The entropy decoder 22 may obtainthe SAO parameters from a bitstream of the MCU. The SAO context decoder24 may obtain leftward SAO merge information, and upward SAO mergeinformation, and SAO on/off information with respect to each colorcomponent from the bitstream of the MCU.

If the SAO on/off information indicates to perform SAO operation, theSAO bypass decoder 26 may obtain edge band identification informationwith respect to each color component, and absolute offset valueinformation and band position information or edge class information foreach SAO category from the bitstream.

As such, if the SAO on/off information indicates to perform an SAOoperation, the SAO operator 28 may adjust the reconstructed values ofthe MCU based on the absolute offset value information with respect toeach SAO category, by using the information obtained by the SAO contextdecoder 24 and the SAO bypass decoder 26.

A method of reconstructing samples of a current MCU and obtaining SAOparameters for adjusting offsets will now be described in detail withreference to FIG. 2B.

The SAO decoding apparatus 20 may perform arithmetic decoding on symbolsof each MCU by using a code probability model of each symbol.Furthermore, the SAO decoding apparatus 20 may perform context-basedarithmetic decoding (hereinafter referred to as ‘context decoding’)based on an updated probability model with respect to each MCU.

Also, the SAO decoding apparatus 20 may perform bypass-mode entropydecoding (hereinafter referred to as ‘bypass decoding’) for performingarithmetic decoding without determining a probability model inconsideration of context.

In operation 21, the SAO context decoder 24 may obtain context-encodedleftward SAO merge information and upward SAO merge information from abitstream of an MCU.

The SAO context decoder 24 may determine a context-based probabilitymodel of the leftward SAO merge information, may perform entropydecoding by using the probability model of the leftward SAO mergeinformation, and thus may reconstruct the leftward SAO mergeinformation.

The SAO context decoder 24 may determine a context-based probabilitymodel of the upward SAO merge information, may perform entropy decodingby using the probability model of the upward SAO merge information, andthus may reconstruct the upward SAO merge information.

If the leftward SAO merge information indicates to predict SAOparameters of a current MCU by using the SAO parameters of a left MCU,the SAO parameters with respect to each color component of the left MCUmay be adopted as the SAO parameters with respect to each colorcomponent of the current MCU.

If the leftward SAO merge information indicates not to use the SAOparameters of the left MCU and the upward SAO merge informationindicates to predict the SAO parameters of the current MCU by using theSAO parameters of an upper MCU, the SAO parameters with respect to eachcolor component of the upper MCU may be adopted as the SAO parameterswith respect to each color component of the current MCU.

However, if the upward SAO merge information indicates not to predictthe SAO parameters of the current MCU by using the SAO parameters of theupper MCU, the entropy decoder 22 may obtain the SAO parameters withrespect to each color component of the current MCU from the bitstream.

In operation 23, the SAO context decoder 24 may obtain context-encodedSAO on/off information with respect to each color component from thebitstream of the MCU.

If the SAO on/off information indicates to perform SAO operation, theSAO bypass decoder 26 may further obtain bypass-encoded edge bandidentification information with respect to each color component from thebitstream of the MCU.

The SAO context decoder 24 may determine a context-based probabilitymodel of the SAO on/off information, may perform entropy decoding byusing the probability model of the SAO on/off information, and thus mayreconstruct the SAO on/off information.

The SAO on/off information for a first chroma component may be equallyapplied to a second chroma component. Accordingly, if the SAO on/offinformation for each of a luma component and the first chroma componentis obtained, the SAO context decoder 24 may not further obtain the SAOon/off information for the second chroma component.

The edge band identification information for the first chroma componentmay be equally applied to the second chroma component. Accordingly, ifthe edge band identification information for each of the luma componentand the first chroma component is obtained, the SAO bypass decoder 26may not further obtain the edge band identification information for thesecond chroma component.

If the SAO on/off information obtained in operation 23 indicates toperform SAO operation, in operation 25, the SAO bypass decoder 26 mayobtain bypass-encoded absolute offset value information for each SAOcategory and each color component from the bitstream of the MCU.

The SAO bypass decoder 26 may perform entropy decoding without using acontext-based probability model of the absolute offset value informationand thus may reconstruct the absolute offset value information.

In operation 27, the SAO bypass decoder 26 may obtain one ofbypass-encoded band position information and edge class information withrespect to each color component from the bitstream of the MCU.

If the edge band identification information indicates a band type, theSAO bypass decoder 26 may obtain bypass-encoded band positioninformation with respect to each color component from the bitstream. Ifthe absolute offset value information obtained for each SAO category isnot 0, the SAO bypass decoder 26 may obtain bypass-encoded offset signinformation and band position information with respect to each colorcomponent from the bitstream. The SAO bypass decoder 26 may lastlyobtain the band position information from among the SAO parameters ofthe MCU.

If the edge band identification information indicates an edge type, theSAO bypass decoder 26 may obtain bypass-encoded edge class informationwith respect to each color component from the bitstream. The edge classinformation may include edge class information for the luma componentand edge class information for the first chroma component. The edgeclass information for the first chroma component may be equally appliedto the second chroma component. If the edge class information for eachof the luma component and the first chroma component is obtained, theSAO bypass decoder 26 may not further obtain the edge class informationfor the second chroma component.

The SAO bypass decoder 26 may perform entropy decoding without using acontext-based probability model of the offset sign information and thusmay reconstruct the offset sign information. The SAO bypass decoder 26may perform entropy decoding without using a context-based probabilitymodel of the band position information and thus may reconstruct the bandposition information. The SAO bypass decoder 26 may perform entropydecoding without using a context-based probability model of the edgeclass information and thus may reconstruct the edge class information.

The SAO operator 28 may determine the SAO parameters of the current MCUby using the SAO parameters of a left or upper MCU based on SAO mergeinformation. In this case, the SAO parameters of the current MCU may notbe extracted but may be reconstructed to be the same as the SAOparameters of previously reconstructed adjacent MCUs.

The SAO context decoder 24 may extract common SAO merge information forthe luma component and the first and second chroma components of thecurrent MCU. The SAO context decoder 24 may determine whether toreconstruct the SAO parameters of the luma component and the SAOparameters of the first and second chroma components to be the same asthe SAO parameters of an adjacent MCU, based on the common SAO mergeinformation.

An off type, an edge type, or a band type may be determined based on SAOtype information obtained by the entropy decoder 22.

If a first bin of the SAO type information, i.e., the SAO on/offinformation, is reconstructed by the SAO context decoder 24, whether toperform SAO operation on the current MCU may be determined based on theSAO on/off information. If an SAO type is an off type, it may bedetermined not to perform SAO operation on the current MCU. In thiscase, remaining SAO parameters of the current MCU may not necessarily beparsed.

The SAO bypass decoder 26 may determine an absolute offset value withrespect to each color component and each category. Each offset value maybe equal to or greater than a preset minimum value, and may be equal toor less than a preset maximum value.

If the SAO type information indicates a band type, a position of a bandincluding pixel values of reconstructed pixels may be determined basedon the band position information obtained by the SAO bypass decoder 26.

If the SAO type information indicates a band type and the absoluteoffset value is determined as 0, the SAO bypass decoder 26 does notreconstruct the offset sign information. If the absolute offset value isnot 0, the SAO bypass decoder 26 may obtain the offset sign information,and may determine whether the offset value is a positive value or anegative value. Also, the SAO bypass decoder 26 may obtain the bandposition information after the offset sign information is obtained.

If the SAO type information indicates an edge type, based on the edgeclass information obtained by the SAO bypass decoder 26, an edgedirection of reconstructed pixels included in the current MCU may bedetermined as 0°, 90°, 45°, or 135°.

The SAO operator 28 may determine whether the SAO type of the currentMCU is an edge type or a band type, based on a second bit of luma SAOtype information, and may perform edge SAO operation or band SAOoperation on the luma component of the current MCU.

The SAO operator 28 may determine whether the SAO type of the currentMCU is an edge type or a band type, based on a second bit of chroma SAOtype information, and may perform edge SAO operation or band SAOoperation on the first and second chroma components of the current MCU.

Also, if it is determined to perform edge SAO operation on the first andsecond chroma components of the current MCU, the SAO operator 28 maydetermine that the first and second chroma components of the current MCUhave the same edge class, based on the chroma SAO type information.

The absolute offset value information from among the SAO parametersobtained by the SAO bypass decoder 26 may be restricted to a value equalto or less than a threshold value based on a bit depth of a video. Theabsolute offset value information may indicate a value within a rangebased on a bit depth of a video. For example, if the bit depthcorresponds to 8 bits, the absolute offset value may be a value equal toor greater than 0 and equal to or less than 7. As another example, ifthe bit depth corresponds to 10 bits, the absolute offset value may be avalue equal to or greater than 0 and equal to or less than 31.

Also, if a second bit of the SAO type information indicates to performband SAO operation on the current MCU, the SAO bypass decoder 26 mayperform bypass-mode CABAC decoding on bits having a fixed bit length andfollowing the second bit of the SAO type information. The SAO bypassdecoder 26 may obtain information about a left start point of bands fromthe last fixed-bit-length bits of the SAO type information with respectto each of the luma component and the chroma component.

Based on the edge band identification information reconstructed by theSAO bypass decoder 26, a pixel value classification method of thecurrent MCU may be determined as an edge type or a band type.

The SAO operator 28 may adjust pixel values of reconstructed samples bydifference values determined with respect to coding units split from thecurrent MCU and having a tree structure.

The SAO decoding apparatus 20 may include a central processor (CPU) forcollectively controlling the entropy decoder 22, the SAO context decoder24, the SAO bypass decoder 26, and the SAO operator 28. Alternatively,the entropy decoder 22, the SAO context decoder 24, the SAO bypassdecoder 26, and the SAO operator 28 may be driven by their individualprocessors that cooperatively operate to control the SAO decodingapparatus 20. Alternatively, an external processor outside the SAOdecoding apparatus 20 may control the entropy decoder 22, the SAOcontext decoder 24, the SAO bypass decoder 26, and the SAO operator 28.

The SAO decoding apparatus 20 may include one or more memories forstoring input and output data of the entropy decoder 22, the SAO contextdecoder 24, the SAO bypass decoder 26, and the SAO operator 28. The SAOdecoding apparatus 20 may include a memory controller for managing datainput and output to and from the memories.

In order to reconstruct a video by performing video decoding, the SAOdecoding apparatus 20 may operate in association with an internal orexternal video decoding processor. The internal video decoding processorof the SAO decoding apparatus 20 may be an independent processor forperforming a basic video decoding operation. Also, the SAO decodingapparatus 20, a central processing unit, or a graphic processing unitmay include a video decoding processor module to perform a basic videodecoding operation.

A video decoding method using an SAO technique will now be described indetail with reference to FIG. 3. FIG. 3 illustrates a block diagram of avideo decoding apparatus 30 according to an exemplary embodiment of thepresent disclosure.

The video decoding apparatus 30 includes an entropy decoder 31, aninverse quantizer 32, an inverse transformer 33, a reconstructor 34, anintra predictor 35, a reference picture buffer 36, a motion compensator37, a deblocking filter 38, and an SAO operator 39.

The video decoding apparatus 30 may receive a bitstream includingencoded video data. The entropy decoder 31 may parse intra modeinformation, inter mode information, SAO information, and residues fromthe bitstream.

The residues extracted by the entropy decoder 31 may be quantizedtransformation coefficients. Accordingly, the inverse quantizer 32 mayperform inverse quantization on the residues to reconstructtransformation coefficients, and the inverse transformer 33 may performinverse transformation on the reconstructed coefficients to reconstructresidual values of the space domain.

In order to predict and reconstruct the residual values of the spacedomain, intra prediction or motion compensation may be performed.

If the intra mode information is extracted by the entropy decoder 31,the intra predictor 35 may determine reference samples to be referred toreconstruct current samples from among samples spatially adjacent to thecurrent samples, by using the intra mode information. The referencesamples may be selected from among samples previously reconstructed bythe reconstructor 34. The reconstructor 34 may reconstruct the currentsamples by using the reference samples determined based on the intramode information and the residual values reconstructed by the inversetransformer 33.

If the inter mode information is extracted by the entropy decoder 31,the motion compensator 37 may determine a reference picture to bereferenced to reconstruct current samples of a current picture fromamong pictures reconstructed previously to the current picture, by usingthe inter mode information. The inter mode information may includemotion vectors, reference indices, etc. By using the reference indices,from among pictures reconstructed previously to the current picture andstored in the reference picture buffer 36, a reference picture to beused to perform motion compensation on the current samples may bedetermined. By using the motion vectors, a reference block of thereference picture to be used to perform motion compensation on a currentblock may be determined. The reconstructor 34 may reconstruct thecurrent samples by using the reference block determined based on theinter mode information and the residual values reconstructed by theinverse transformer 33.

The reconstructor 34 may reconstruct samples and may outputreconstructed pixels. The reconstructor 34 may generate reconstructedpixels of each MCU based on coding units having a tree structure.

The deblocking filter 38 may perform filtering for reducing a blockingphenomenon of pixels disposed at edge regions of the MCU or each of thecoding units having a tree structure.

Also, the SAO operator 39 may adjust offsets of reconstructed pixels ofeach MCU according to an SAO technique. The SAO operator 39 maydetermine an SAO type, an SAO class, and offset values of a current MCUbased on the SAO information extracted by the entropy decoder 31.

An operation of extracting the SAO information by the entropy decoder 31may correspond to an operation of the SAO parameter extractor 22 of theSAO decoding apparatus 20, and operations of the SAO operator 39 maycorrespond to operations of the SAO determiner 24 and the SAO operator26 of the SAO decoding apparatus 20.

The SAO operator 39 may determine signs and difference values of theoffset values with respect to the reconstructed pixels of the currentMCU based on the offset values determined from the SAO information. TheSAO operator 39 may reduce errors between the reconstructed pixels andoriginal pixels by increasing or reducing pixel values of thereconstructed pixels by the difference values determined based on theoffset values.

A picture including the reconstructed pixels offset-adjusted by the SAOoperator 39 may be stored in the reference picture buffer 36. Thus, byusing a reference picture having minimized errors between reconstructedsamples and original pixels according to an SAO operation, motioncompensation may be performed on a next picture.

According to the SAO operation, based on difference values betweenreconstructed pixels and original pixels, an offset of a pixel groupincluding the reconstructed pixels may be determined. For the SAOoperation, exemplary embodiments for classifying reconstructed pixelsinto pixel groups will now be described in detail.

According to an SAO operation, pixels may be classified (i) based on anedge type of reconstructed pixels, or (ii) a band type of reconstructedpixels. Whether pixels are classified based on an edge type or a bandtype may be defined by using an SAO type.

Exemplary embodiments of classifying pixels based on an edge typeaccording to an SAO operation will now be described in detail.

When edge-type offsets of a current MCU are determined, an edge class ofeach of reconstructed pixels included in the current MCU may bedetermined. In other words, by comparing pixel values of currentreconstructed pixels and adjacent pixels, an edge class of the currentreconstructed pixels may be defined. An example of determining an edgeclass will now be described with reference to FIG. 4.

FIG. 4 illustrates a table showing edge classes of edge types, accordingto exemplary embodiments of the present disclosure.

Indices 0, 1, 2, and 3 may be sequentially allocated to edge classes 41,42, 43, and 44. If an edge type frequently occurs, a small index may beallocated to the edge type.

An edge class may indicate a direction of 1-dimensional edges formedbetween a current reconstructed pixel X0 and two adjacent pixels. Theedge class 41 having the index 0 indicates a case when edges are formedbetween the current reconstructed pixel X0 and two horizontally adjacentpixels X1 and X2. The edge class 42 having the index 1 indicates a casewhen edges are formed between the current reconstructed pixel X0 and twovertically adjacent pixels X3 and X4. The edge class 43 having the index2 indicates a case when edges are formed between the currentreconstructed pixel X0 and two 135°-diagonally adjacent pixels X5 andX8. The edge class 44 having the index 3 indicates a case when edges areformed between the current reconstructed pixel X0 and two 45°-diagonallyadjacent pixels X6 and X7.

Accordingly, by analyzing edge directions of reconstructed pixelsincluded in a current MCU and thus determining a strong edge directionin the current MCU, an edge class of the current MCU may be determined.

With respect to each edge class, categories may be classified accordingto an edge shape of a current pixel. An example of categories accordingto edge shapes will now be described with reference to FIGS. 5A and 5B.

FIGS. 5A and 5B respectively illustrate a table and a graph showingcategories of edge types, according to exemplary embodiments of thepresent disclosure.

An edge category indicates whether a current pixel corresponds to alowest point of a concave edge, a pixel disposed at a curved corneraround a lowest point of a concave edge, a highest point of a convexedge, or a pixel disposed at a curved corner around a highest point of aconvex edge.

FIG. 5A illustrates conditions for determining categories of edges. FIG.5B illustrates edge shapes between a reconstructed pixel and adjacentpixels and their pixel values c, a, and b.

With reference to FIGS. 5A and 5B, c indicates an index of a currentreconstructed pixel, and a and b indicate indices of adjacent pixels attwo sides of the current reconstructed pixel according to an edgedirection. Xa, Xb, and Xc respectively indicate pixel values ofreconstructed pixels having the indices a, b, and c. In FIG. 5B, an xaxis indicates indices of the current reconstructed pixel and theadjacent pixels at two sides of the current reconstructed pixel, and a yaxis indicates pixel values of samples.

Category 1 indicates a case when a current sample corresponds to alowest point of a concave edge, i.e., a local valley (Xc<Xa && Xc<Xb).As shown in graph 51, if the current reconstructed pixel c between theadjacent pixels a and b corresponds to a lowest point of a concave edge,the current reconstructed pixel may be classified as the category 1.

Category 2 indicates a case when a current sample is disposed at acurved corner around a lowest point of a concave edge, i.e., a concavecorner (Xc<Xa && Xc==Xb∥Xc==Xa && Xc<Xb). As shown in graph 52, if thecurrent reconstructed pixel c between the adjacent pixels a and b isdisposed at an end point of a downward curve of a concave edge (Xc<Xa &&Xc==Xb) or, as shown in graph 53, if the current reconstructed pixel cis disposed at a start point of an upward curve of a concave edge(Xc==Xa && Xc<Xb), the current reconstructed pixel may be classified asthe category 2.

Category 3 indicates a case when a current sample is disposed at acurved corner around a highest point of a convex edge, i.e., a convexcorner (Xc>Xa && Xc==Xb∥Xc==Xa && Xc>Xb). As shown in graph 54, if thecurrent reconstructed pixel c between the adjacent pixels a and b isdisposed at a start point of a downward curve of a convex edge (Xc==Xa&& Xc>Xb) or, as shown in graph 55, if the current reconstructed pixel cis disposed at an end point of an upward curve of a convex edge (Xc>Xa&& Xc==Xb), the current reconstructed pixel may be classified as thecategory 3.

Category 4 indicates a case when a current sample corresponds to ahighest point of a convex edge, i.e., a local peak (Xc>Xa && Xc>Xb). Asshown in graph 56, if the current reconstructed pixel c between theadjacent pixels a and b corresponds to a highest point of a convex edge,the current reconstructed pixel may be classified as the category 4.

If the current reconstructed pixel does not satisfy any of theconditions of the categories 1, 2, 3, and 4, the current reconstructedpixel does not correspond to an edge and thus is classified as category0, and an offset of category 0 may not be encoded.

According to exemplary embodiments of the present disclosure, withrespect to reconstructed pixels corresponding to the same category, anaverage value of difference values between the reconstructed pixels andoriginal pixels may be determined as an offset of a current category.Also, offsets of all categories may be determined.

The concave edges of the categories 1 and 2 may be smoothed ifreconstructed pixel values are adjusted by using positive offset values,and may be sharpened due to negative offset values. The convex edges ofthe categories 3 and 4 may be smoothed due to negative offset values andmay be sharpened due to positive offset values.

The SAO encoding apparatus 10 may not allow the sharpening effect ofedges. Here, the concave edges of the categories 1 and 2 need positiveoffset values, and the convex edges of the categories 3 and 4 neednegative offset values. In this case, if a category of an edge is known,a sign of an offset value may be determined. Accordingly, the SAOencoding apparatus 10 may not transmit the sign of the offset value andmay transmit only an absolute value of the offset value. Also, the SAOdecoding apparatus 20 may not receive the sign of the offset value andmay receive only an absolute value of the offset value.

Accordingly, the SAO encoding apparatus 10 may encode and transmitoffset values according to categories of a current edge class, and theSAO decoding apparatus 20 may adjust reconstructed pixels of thecategories by the received offset values.

For example, if an offset value of an edge type is determined as 0, theSAO encoding apparatus 10 may transmit only edge class information.

For example, if an absolute offset value of an edge type is not 0, theSAO encoding apparatus 10 may transmit the absolute offset value andedge class information. With respect to the edge type, a sign of theoffset value does may not be transmitted.

If the received absolute offset value is not 0, the SAO decodingapparatus 20 may read the absolute offset value of the edge type. Thesign of the offset value may be predicted according to an edge categorybased on an edge shape between a reconstructed pixel and adjacentpixels.

Accordingly, the SAO encoding apparatus 10 may classify pixels accordingto edge directions and edge shapes, may determine an average error valuebetween pixels having characteristics that are the same ascharacteristics of an offset value, and may determine offset valuesaccording to categories. The SAO encoding apparatus 10 may encode andtransmit SAO type information indicating an edge type, SAO classinformation indicating an edge direction, and the offset values.

The SAO decoding apparatus 20 may receive the SAO type information, theSAO class information, and the offset values, and may determine an edgedirection according to the SAO type information and the SAO classinformation. The SAO decoding apparatus 20 may determine an offset valueof reconstructed pixels of a category corresponding to an edge shapeaccording to the edge direction, and may adjust pixel values of thereconstructed pixels by the offset value, thereby minimizing an errorbetween an original image and a reconstructed image.

Exemplary embodiments of classifying pixels based on a band typeaccording to an SAO technique will now be described in detail.

According to exemplary embodiments of the present disclosure, each ofpixel values of reconstructed pixels may belong to one of a plurality ofbands. For example, the pixel values may have a total range from aminimum value Min of 0 to a maximum value Max of 2̂(p−1) according top-bit sampling. If the total range (Min, Max) of the pixel values isdivided into K periods, each period of the pixel values is referred toas a band. If B_(k) indicates a maximum value of a kth band, bands [B₀,B₁−1], [B₁, B₂−1], [B₂, B₃−1], . . . , and [B_(k)−1, B_(k)] may bedivided. If a pixel value of a current reconstructed pixel Rec(x,y)belongs to the band [B_(k)−1, B_(k)], a current band may be determinedas k. The bands may be evenly or unevenly divided.

For example, if pixel values are classified into equal 8-bit pixelbands, the pixel values may be divided into 32 bands. In more detail,they may be classified into bands [0, 7], [8, 15], . . . , [240, 247],and [248, 255].

From among a plurality of bands classified according to a band type, aband to which each of pixel values of reconstructed pixels belongs maybe determined. Also, an offset value indicating an average of errorsbetween original pixels and reconstructed pixels in each band may bedetermined.

Accordingly, the SAO encoding apparatus 10 and the SAO decodingapparatus 20 may encode and transceive an offset corresponding to eachof bands classified according to a current band type, and may adjustreconstructed pixels by the offset.

Accordingly, with respect to a band type, the SAO encoding apparatus 10and the SAO decoding apparatus 20 may classify reconstructed pixelsaccording to bands to which their pixel values belong, may determine anoffset as an average of error values of reconstructed pixels that belongto the same band, and may adjust the reconstructed pixels by the offset,thereby minimizing an error between an original image and areconstructed image.

When an offset according to a band type is determined, the SAO encodingapparatus 10 and the SAO decoding apparatus 20 may classifyreconstructed pixels into categories according to a band position. Forexample, if the total range of the pixel values is divided into K bands,categories may be indexed according to a band index k indicating ak^(th) band. The number of categories may be determined to correspond tothe number of bands.

However, in order to reduce data, the SAO encoding apparatus 10 and theSAO decoding apparatus 20 may restrict the number of categories used todetermine offsets according to an SAO technique. For example, apredetermined number of bands that are continuous from a band having apredetermined start position in a direction in which a band index isincreased may be allocated to categories, and only an offset of eachcategory may be determined.

For example, if a band having an index of 12 is determined as a startband, four bands from the start band, i.e., bands having indices of 12,13, 14, and 15 may be respectively allocated to categories 1, 2, 3, and4. Accordingly, an average error between reconstructed pixels andoriginal pixels included in a band having the index of 12 may bedetermined as an offset of category 1. Likewise, an average errorbetween reconstructed pixels and original pixels included in a bandhaving the index of 13 may be determined as an offset of category 2, anaverage error between reconstructed pixels and original pixels includedin a band having the index of 14 may be determined as an offset ofcategory 3, and an average error between reconstructed pixels andoriginal pixels included in a band having the index of 15 may bedetermined as an offset of category 4.

In this case, information about a start position of a band range, i.e.,the position of a left band, is required to determine positions of bandsallocated to categories. Accordingly, the SAO encoding apparatus 10 mayencode and transmit left start point information indicating the positionof the left band, as the SAO class. The SAO encoding apparatus 10 mayencode and transmit an SAO type indicating a band type, an SAO class,and offset values according to categories.

The SAO decoding apparatus 20 may receive the SAO type, the SAO class,and the offset values according to the categories. If the received SAOtype is a band type, the SAO decoding apparatus 20 may read a start bandposition from the SAO class. The SAO decoding apparatus 20 may determinea band to which reconstructed pixels belong, from among four bands fromthe start band, may determine an offset value allocated to a currentband from among the offset values according to the categories, and mayadjust pixel values of the reconstructed pixels by the offset value.

Hereinabove, an edge type and a band type are introduced as SAO types,and an SAO class and a category according to the SAO type are describedin detail. SAO parameters encoded and transceived by the SAO encodingapparatus 10 and the SAO decoding apparatus 20 will now be described indetail.

The SAO encoding apparatus 10 and the SAO decoding apparatus 20 maydetermine an SAO type according to a pixel classification method ofreconstructed pixels of each MCU.

The SAO type may be determined according to image characteristics ofeach block. For example, with respect to an MCU including a verticaledge, a horizontal edge, and a diagonal edge, in order to change edgevalues, offset values may be determined by classifying pixel valuesaccording to an edge type. With respect to an MCU not including an edgeregion, offset values may be determined according to bandclassification. Accordingly, the SAO encoding apparatus 10 and the SAOdecoding apparatus 20 may signal the SAO type with respect to each MCU.

The SAO encoding apparatus 10 and the SAO decoding apparatus 20 maydetermine SAO parameters with respect to each MCU. In other words, SAOtypes of reconstructed pixels of an MCU may be determined, thereconstructed pixels of the MCU may be classified into categories, andoffset values may be determined according to the categories.

From among the reconstructed pixels included in the MCU, the SAOencoding apparatus 10 may determine an average error of reconstructedpixels classified into the same category, as an offset value. An offsetvalue of each category may be determined.

According to exemplary embodiments of the present disclosure, the SAOparameters may include an SAO type, offset values, and an SAO class. TheSAO encoding apparatus 10 and the SAO decoding apparatus 20 maytransceive the SAO parameters determined with respect to each MCU.

From among SAO parameters of an MCU, the SAO encoding apparatus 10 mayencode and transmit the SAO type and the offset values. If the SAO typeis an edge type, the SAO encoding apparatus 10 may further transmit anSAO class indicating an edge direction, which is followed by the SAOtype and the offset values according to categories. If the SAO type is aband type, the SAO encoding apparatus 10 may further transmit an SAOclass indicating a start band position, which is followed by the SAOtype and the offset values according to categories. The SAO class may beclassified as edge class information with respect to the edge type, andmay be classified as band position information with respect to the bandtype.

The SAO decoding apparatus 20 may receive the SAO parameters of eachMCU, which includes the SAO type, the offset values, and the SAO class.Also, the SAO decoding apparatus 20 may select an offset value of acategory to which each reconstructed pixel belongs, from among theoffset values according to categories, and may adjust the reconstructedpixel by the selected offset value.

Exemplary embodiments of transceiving offset values from among SAOparameters will now be described.

In order to transmit the offset values, the SAO encoding apparatus 10may further transmit sign information and an absolute remainder.

If an absolute offset value is 0, the sign information or the absoluteremainder may not be encoded. However, if the absolute offset value isnot 0, the sign information and the absolute remainder may be furthertransmitted.

However, as described above, with respect to the edge type, because theoffset value may be predicted as a positive number or a negative numberaccording to a category, the sign information may not be transmitted.

According to exemplary embodiments of the present disclosure, an offsetvalue Off-set may be previously restricted within a range from a minimumvalue MinOffset to a maximum value MaxOffset before the offset value isdetermined (MinOffset Off-Set MaxOffset).

For example, with respect to an edge type, offset values ofreconstructed pixels of categories 1 and 2 may be determined within arange from a minimum value of 0 to a maximum value of 7. With respect tothe edge type, offset values of reconstructed pixels of categories 3 and4 may be determined within a range from a minimum value of −7 to amaximum value of 0.

For example, with respect to a band type, offset values of reconstructedpixels of all categories may be determined within a range from a minimumvalue of −7 to a maximum value of 7.

In order to reduce transmission bits of an offset value, a remainder maybe restricted to a p-bit value instead of a negative number. In thiscase, the remainder may be greater than or equal to 0 and may be lessthan or equal to a difference value between the maximum value and theminimum value (0≦Remainder≦MaxOffset−MinOffset+1≦2̂p). If the SAOencoding apparatus 10 transmits the remainder and the SAO decodingapparatus 20 is able to determine at least one of the maximum value andthe minimum value of the offset value, an original offset value may bereconstructed by using only the received remainder.

From among SAO parameters, SAO merge information will now be describedin detail.

SAO types and/or offset values of adjacent blocks may be the same. TheSAO encoding apparatus 10 may compare SAO parameters of a current blockto SAO parameters of adjacent blocks and may merge and encode the SAOparameters of the current block and the adjacent blocks if the SAOparameters are the same. If the SAO parameters of the adjacent block arepreviously encoded, the SAO parameters of the adjacent block may beadopted as the SAO parameters of the current block. Accordingly, the SAOencoding apparatus 10 may not encode the SAO parameters of the currentblock and may encode only the SAO merge information of the currentblock.

Before the SAO parameters are parsed from a received bitstream, the SAOdecoding apparatus 20 may initially parse the SAO merge information andmay determine whether to parse the SAO parameters. The SAO decodingapparatus 20 may determine whether an adjacent block having SAOparameters, which are the same as SAO parameters of the current block,exists based on the SAO merge information.

For example, if an adjacent block having the same SAO parameters existsbased on the SAO merge information, the SAO decoding apparatus 20 maynot parse the SAO parameters of the current block and may adoptreconstructed SAO parameters of the adjacent block as the SAO parametersof the current block. Accordingly, the SAO decoding apparatus 20 mayreconstruct the SAO parameters of the current block to be the same asthose SAO parameters of the adjacent block. Also, based on the SAO mergeinformation, an adjacent block having SAO parameters to be referencedmay be determined.

For example, if the SAO parameters of the adjacent blocks are differentfrom the SAO parameters of the current block based on the SAO mergeinformation, the SAO decoding apparatus 20 may parse and reconstruct theSAO parameters of the current block from the bitstream.

FIG. 6A illustrates a diagram showing adjacent MCUs referred to mergeSAO parameters, according to exemplary embodiments of the presentdisclosure.

The SAO encoding apparatus 10 may determine a candidate list of adjacentMCUs to be referenced to predict SAO parameters of a current MCU 651from among adjacent MCUs reconstructed prior to the current MCU 651. TheSAO encoding apparatus 10 may compare SAO parameters of the current MCU651 and the adjacent MCUs in the candidate list.

For example, simply, left and upper MCUs 653 and 652 of the current MCU651 in a current picture 65 may be included in the candidate list.

Accordingly, the SAO encoding apparatus 10 may compare SAO parameters ofthe adjacent MCUs included in the candidate list to those of the currentMCU 651 according to a reference order. For example, the SAO parametersmay be compared to those of the current MCU 651 in the order of the leftMCU 653 and the upper MCU 652. From among the compared left and upperMCUs 653 and 652, an MCU having SAO parameters that are the same as SAOparameters of the current MCU 651 may be determined as a reference MCU.

In order to predict the SAO parameters of the current MCU 651, the SAOencoding apparatus 10 and the SAO decoding apparatus 20 may refer to thesame adjacent MCUs. Also, SAO merge information indicating an MCU havingSAO parameters to be referred to may be transceived. The SAO decodingapparatus 20 may select one of the adjacent MCUs based on the SAO mergeinformation, and may reconstruct the SAO parameters of the current MCU651 to be the same as those SAO parameters of the selected adjacent MCU.

For example, it is assumed that the left and upper MCUs 653 and 652 arereferenced. The entropy encoder 14 may encode leftward SAO mergeinformation indicating whether the SAO parameters of the left MCU 653 ofthe current MCU 651 are the same as those of the current MCU 651, andupward SAO merge information indicating whether the SAO parameters ofthe upper MCU 652 are the same as SAO parameters of the current MCU 651,as the SAO merge information. In this case, the SAO parameters of thecurrent MCU 651 and the left MCU 653 may be initially compared todetermine whether the SAO parameters are the same, and then the SAOparameters of the current MCU 651 and the upper MCU 652 may be comparedto determine whether the SAO parameters are the same. According to acomparison result, the SAO merge information may be determined.

If the SAO parameters of at least one of the left and upper MCUs 653 and652 are the same as SAO parameters of the current MCU 651, the entropyencoder 14 may encode only the leftward SAO merge information and theupward SAO merge information, and may not encode the SAO parameters ofthe current MCU 651.

If the SAO parameters of both of the left and upper MCUs 653 and 652 aredifferent from SAO parameters of the current MCU 651, the entropyencoder 14 may encode the leftward SAO merge information, the upward SAOmerge information, and the SAO parameters of the current MCU 651.

SAO parameters according to color components will now be described indetail.

The SAO encoding apparatus 10 and the SAO decoding apparatus 20 maymutually predict SAO parameters between color components.

The SAO encoding apparatus 10 and the SAO decoding apparatus 20 mayperform SAO operation on both luma blocks and chroma blocks in a YCrCbcolor format. Offset values of a luma component (Y component) and firstand second chroma components (Cr and Cb components) of a current MCU maybe determined.

According to an exemplary embodiment, common SAO merge information maybe applied to a Y component, a Cr component, and a Cb component of thecurrent MCU. In other words, based on one piece of SAO mergeinformation, whether SAO parameters of the Y component are the same asSAO parameters of the Y component of an adjacent MCU may be determined,whether SAO parameters of the Cr component are the same as SAOparameters of the Cr component of the adjacent MCU may be determined,and whether SAO parameters of the Cb component are the same as SAOparameters of the Cb component of the adjacent MCU may be determined.

According to another exemplary embodiment, common SAO type informationmay be applied to the Cr and Cb components of the current MCU. In otherwords, based on one piece of SAO type information, it may be determinedwhether SAO operation is simultaneously (or non-simultaneously)performed on the Cr and Cb components. Also, based on one piece of SAOtype information, it may be identified whether offset values of the Crand Cb components are determined according to an edge type or a bandtype. If the SAO type is an edge type based on one piece of SAO typeinformation, the Cr and Cb components may share the same edge direction.

In other words, based on one piece of SAO type information, whetheroffset values of the Cr and Cb components are determined according to anedge type or a band type may be identified.

Also, based on one piece of SAO type information, the Cr and Cbcomponents may share the same SAO class. If the SAO type is an edge typebased on one piece of SAO type information, the Cr and Cb components mayshare the same edge direction. If the SAO type is a band type based onone piece of SAO type information, the Cr and Cb components may sharethe same left band start position.

Syntax structures for defining SAO parameters of a current MCU will nowbe described in detail with reference to FIGS. 6B, and 7A through 7C.

FIG. 6B illustrates a diagram showing a process of performing entropyencoding on SAO parameters 60, according to another exemplary embodimentof the present disclosure.

Because SAO operation is performed on each color component of an MCU,the SAO parameters 60 of FIG. 6B may be individually obtained withrespect to each color component. If a color index ‘cldx’ indicating aluma component, or a first or second chroma component varies, additionalSAO parameters 60 may be obtained.

The SAO parameters 60 may include a parameter ‘sao_merge_left_flag’indicating leftward SAO merge information, a parameter‘sao_merge_up_flag’ indicating upward SAO merge information, a parameter‘sao_type_idx’ indicating SAO type information, a parameter‘sao_band_position’ indicating band position information of a band type,a parameter ‘sao_offset_abs’ indicating absolute offset valueinformation, and a parameter ‘sao_offset_sign’ indicating offset signinformation. Accordingly, whenever the color index ‘cldx’ is set as 0,1, or 2, ‘sao_merge_left_flag’, ‘sao_merge_up_flag’, ‘sao_type_idx’,‘sao_band_position’, ‘sao_offset_abs’, and ‘sao_offset_sign’ may benewly obtained.

In particular, the parameter ‘sao_offset_abs’ indicating the absoluteoffset value information, and a parameter ‘sao_offset_sign’ indicatingthe offset sign information may be additionally obtained with respect tofour SAO categories. Accordingly, ‘sao_offset_abs’ and ‘sao_offset_sign’may be obtained with respect to each of four categories and each colorcomponent.

Also, the SAO parameters 60 may have different entropy encoding methods.Context decoding or bypass decoding may be performed according to anentropy encoding method of an obtained parameter.

For example, one bin indicating the parameter ‘sao_merge_left_flag’ maybe context-decoded, and one bin indicating the parameter‘sao_merge_up_flag’ may be context-decoded. Six bins indicating theparameter ‘sao_type_idx’ may be context-decoded.

Also, five bins indicating the parameter ‘sao_band_position’ may bebypass-decoded. Thirty-one bins indicating the parameter‘sao_offset_abs’ may be context-decoded, and one bin indicating theparameter ‘sao_offset_sign’ may be bypass-decoded.

Considering that parameters are individually obtained with respect tothree color components and some parameters are individually obtainedwith respect to four SAO categories, up to 423 bins may be obtainedaccording to Equation a.

3×(1+1+6+5+4×31+4×1)=396+27=423  <Equation a>

In particular, from among 423 bins, 396 bins may be context-decoded, and27 bins may be bypass-decoded. For context decoding, because each binrequires context-based probability modeling, the amount of calculationis large. Accordingly, if the number of context-decoded bins is largerthan the number of bypass-decoded bins in a whole bitstream of the SAOparameters 60, the calculation and time for decoding all SAO parameters60 are increased.

Also, the parameter ‘sao_band_position’ indicating the band positioninformation should be bypass-decoded, the parameter ‘sao_offset_abs’indicating the absolute offset value information should becontext-decoded, and the parameter ‘sao_offset_sign’ indicating theoffset sign information should be bypass-decoded. In particular, becausean SAO category index is increased as 0, 1, 2, and 3, context decodingoperations on the parameter ‘sao_offset_abs’ and bypass decodingoperations on the parameter ‘sao_offset_sign’ should be alternatelyperformed.

Alternate performing of different entropy decoding operations isinefficient in comparison to continuous performing of the same entropydecoding operation. Accordingly, if context decoding and bypass decodingoperations are alternately performed a plurality of times on theparameters ‘sao_band_position’, ‘sao_offset_abs’, and ‘sao_offset_sign’from among the SAO parameters 60, the efficiency of an overall entropydecoding operation may be reduced.

FIG. 7A illustrates SAO syntax 70 of a coding unit, according toexemplary embodiments of the present disclosure.

The SAO syntax 70 of FIG. 7A is a part of syntax of an MCU, which isrelated to SAO parameters. The SAO encoding apparatus 10 may determinethe SAO parameters by performing SAO operation on samples of the MCU,and may perform entropy encoding on the SAO parameters. Also, the SAOencoding apparatus 10 may output a bitstream including bitstreams of theSAO parameters according to an order indicated by the SAO syntax 70.

The SAO decoding apparatus 20 may obtain the bitstreams of the SAOparameters by parsing the SAO syntax 70, and may reconstruct the SAOparameters by performing entropy decoding on the SAO parameters. The SAOdecoding apparatus 20 may perform SAO operation on reconstructed samplesof the MCU by using the reconstructed SAO parameters.

If a left MCU adjacent to a current MCU exists in a current slice,leftward SAO merge information ‘sao_merge_left_flag’ 71 may be obtained.Otherwise, if an upper MCU adjacent to the current MCU exists in thecurrent slice and the SAO parameters of the left MCU are not merged,upward SAO merge information ‘sao_merge_up_flag’ 72 may be obtained.

The ‘sao_merge_left_flag’ 71 and the ‘sao_merge_up_flag’ 72 may beobtained regardless of color components, and thus may be commonlyapplied to a luma component and first and second chroma components. Thesame motion vector may be used to perform motion compensation on thethree color components. Accordingly, because SAO merge information isobtained regardless of the color components, SAO operation using theleftward and upward SAO merge information and 72 may be efficientlyunified with a codec for performing motion compensation.

SAO parameters other than the ‘sao_merge_left_flag’ 71 and the‘sao_merge_up_flag’ 72 (741, 743, 751, 753, 77, 781, 782, 791, and 793)may be separated according to the color components, and thus may beobtained by designating the color index ‘cldx’ as 0, 1, and 2 (73).

If a current color index indicates a luma component (74), luma SAOon/off information ‘sao_on_off_flag_luma’ 741 may be obtained. If SAOoperation is performed on the luma component, luma edge bandidentification information ‘sao_eo_bo_flag_luma’ 743 may be furtherobtained.

Otherwise, if the current color index is a first chroma component (75),chroma SAO on/off information ‘sao_on_off_flag_chroma’ 751 for first andsecond chroma components may be obtained. If SAO operation is performedon the first and second chroma components, chroma edge bandidentification information ‘sao_eo_bo_flag_chroma’ 753 may be furtherobtained. The ‘sao_on_off_flag_chroma’ 751 and the‘sao_eo_bo_flag_chroma’ 753 may be obtained only when the color indexindicates the first chroma component, and may not be obtained when thecolor index indicates the second chroma component.

SAO on/off information of SAO type information does not indicate ‘off’(76), SAO class information and offset value information for each SAOcategory may be obtained. Due to a for loop statement according to anincrease in T, absolute offset value information ‘sao_offset_abs’ 77,offset sign information ‘sao_offset_sign’ 781, and band positioninformation ‘sao_band_position’ 783 may be individually obtained withrespect to each SAO category.

Initially, if the absolute offset value information ‘sao_offset_abs’ 77is obtained and the SAO type information indicates a band type (78), theband position information ‘sao_band_position’ 783 may be obtained. Inparticular, if the absolute offset value information ‘sao_offset_abs’ 77is not 0, the offset sign information ‘sao_offset_sign’ 781 may beinitially obtained and then the ‘sao_band_position’ 783 may be obtained.

When the SAO type information indicates an edge type (79), if the colorindex indicates the luma component, luma edge class information‘sao_eo_class_luma’ 791 may be obtained. If the color index indicatesthe first chroma component, chroma edge class information‘sao_eo_class_chroma’ 793 for the first and second chroma components maybe obtained. If the color index indicates the second chroma component,the ‘sao_eo_class_chroma’ 793 may not be obtained.

If the SAO type information indicates an edge type, only the luma orchroma edge class information 791 or 793 may be obtained and offset signinformation may not be obtained because a sign of an edge offset valuemay be determined according to an edge class.

As described above, the chroma SAO on/off information‘sao_on_off_flag_chroma’ 751, the chroma edge band identificationinformation ‘sao_eo_bo_flag_chroma’ 753, and the chroma edge classinformation ‘sao_eo_class_chroma’ 793 are parameters commonly applied tothe first and second chroma components.

Accordingly, because the chroma SAO on/off information‘sao_on_off_flag_chroma’ 751, the chroma edge band identificationinformation ‘sao_eo_bo_flag_chroma’ 753, and the chroma edge classinformation ‘sao_eo_class_chroma’ 793 are commonly obtained with respectto the first and second chroma components, memory access for performingSAO operation on chroma components may be simplified. Also, because thesame parameters are applied to the first and second chroma components ineach of intra prediction, motion compensation, and adaptive loopfiltering (ALF) performed on the first and second chroma components,parameters or samples for each operation may be obtained by accessingthe same memory. Accordingly, SAO operation may be efficiently unifiedwith a codec for performing intra prediction, motion compensation, andALF.

Hereinabove, operations of the SAO decoding apparatus 20 for obtainingSAO parameters by parsing the SAO syntax 70 are sequentially describedin detail. A process of performing entropy decoding on the obtained SAOparameters will now be described in detail.

The SAO decoding apparatus 20 may perform context decoding on theleftward SAO merge information ‘sao_merge_left_flag’ 71 and the upwardSAO merge information ‘sao_merge_up_flag’ 72. Accordingly, a probabilitymodel based on context of a bin of the leftward SAO merge information 71may be determined, and one bin value used to probabilistically generatethe 1-bit leftward SAO merge information 71 may be reconstructed. Theabove-described context decoding may be similarly performed on theupward SAO merge information 72.

Unlike the SAO parameters 60 of FIG. 6B, the SAO decoding apparatus 20may separately decode the SAO type information as the SAO on/offinformation 741 and 743, the edge band identification information 751and 753, the offset sign information 781, the band position information783, and the edge class information 791 and 793. The edge classinformation 791 and 793 may be obtained with respect to an edge type,and the offset sign information 781 and the band position information783 may be obtained with respect to a band type.

Context decoding is performed for six bins of SAO type information‘sao_type_idx’ of the SAO parameters 60 of FIG. 6B. On the other hand,the SAO decoding apparatus 20 may perform context decoding for one binof the SAO on/off information 741 and 743, and may perform bypassdecoding for remaining parameters.

For example, with respect to an edge type, the SAO decoding apparatus 20may perform context decoding for one bin of the SAO on/off information741 and 743, and may perform bypass decoding for one bin of the edgeband identification information 751 or 753 and 2 bins of the edge classinformation 791 or 793.

Accordingly, considering that only some parameters are individuallyobtained with respect to three color components and four SAO categories,with respect to a band type, the SAO decoding apparatus 20 may obtain upto 405 bins according to Equation b.

1+1+2×(1+1)+3×(4×31+4×1+5)=4+401=405  <Equation b>

In particular, from among 405 bins, 4 bins may be context-decoded, and401 bins may be bypass-decoded. In other words, the number of contextdecoding operations, which require a relatively large amount ofcalculation, is greatly less than the number of bypass decodingoperations. Also, because some SAO parameters are obtained as the sameparameter with respect to color components, the length of a wholebitstream of the SAO parameters may be reduced.

Accordingly, because the SAO decoding apparatus 20 performs bypassdecoding on the edge band identification information 751 or 753, theabsolute offset value information 77, and the band position information783 or the edge class information 791 or 793, obtains the common SAOmerge information 71 and 72 with respect to color components, andobtains the common SAO on/off information 741 or 743, the edge bandidentification information 751 or 753, and the edge class information791 or 793 with respect to chroma components, the efficiency of anoverall entropy decoding operation on the SAO parameters may beimproved.

Also, unlike the SAO parameters 60 of FIG. 6B, the SAO decodingapparatus 20 may obtain the band position information 783 later than theabsolute offset value information 77. As such, the SAO decodingapparatus 20 may perform context decoding on the SAO merge information71 and 72, and the SAO on/off information 741 or 743, and may performbypass decoding on the edge band identification information 751 or 753,the absolute offset value information 77, and the band positioninformation 783 or the edge class information 791 or 793.

Accordingly, in comparison to the SAO parameters 60 of FIG. 6B, becausethe number of times that the SAO decoding apparatus 20 alternatelyperforms context decoding and bypass decoding by using the SAO syntax 70is reduced, the efficiency of an entropy decoding operation on the SAOparameters may be improved.

FIGS. 7B and 7C illustrate SAO syntax of a coding unit, according toother exemplary embodiments of the present disclosure.

The SAO syntax of FIG. 7B is designed to reduce the number of ‘ifstatements’ for checking a color index in the SAO syntax 70 of FIG. 7A,because the amount of calculation is increased if the number of ifstatements for checking a condition is increased.

In the SAO syntax of FIG. 7B, if statements for checking whether acurrent color index indicates a luma component or a first chromacomponent in order to obtain SAO on/off information 83 and 84 are notrequired. According to the SAO syntax of FIG. 7B, luma SAO on/offinformation 83, luma edge band identification information 831, and lumaedge class information 833 for the luma component may be sequentiallyobtained, and then chroma SAO on/off information 84, chroma edge bandidentification information 841, and chroma edge class information 843for first and second chroma components may be sequentially obtained.

Thus, according to the SAO syntax of FIG. 7B, in comparison to the SAOsyntax 70 of FIG. 7A, because four if statements, for checking whether acurrent color index indicates a luma component or a first chromacomponent are deleted, the number of if statements may be reduced by 4.

In the SAO syntax of FIG. 7B, after the luma SAO on/off information 83,the luma edge band identification information 831, the luma edge classinformation 833, the chroma SAO on/off information 84, the chroma edgeband identification information 841, and the chroma edge classinformation 842 are obtained, absolute offset value information 87 andoffset sign information 881 may be obtained with respect to each colorcomponent and each category, and band position information 883 may beobtained with respect to each color component.

In this case, a context decoding operation is performed on the luma SAOon/off information 83, a bypass decoding operation is performed on theluma edge band identification information 831 and the luma edge classinformation 832, a context decoding operation is performed on the chromaSAO on/off information 84, and a bypass decoding operation is performedon the chroma edge band identification information 841 and the chromaedge class information 843. A bypass decoding operation may be performedon the absolute offset value information 87, the offset sign information881, and the band position information 883.

Accordingly, in the SAO syntax of FIG. 7B, context decoding and bypassdecoding operations are switched three times.

The SAO syntax of FIG. 7C is designed to reduce the number of times thatcontext decoding and bypass decoding operations are switched in the SAOsyntax 70 of FIG. 7B, in which the number of if statements for checkinga color index in the SAO syntax 70 of FIG. 7A is reduced.

In the SAO syntax of FIG. 7C, the luma SAO on/off information 83 isobtained and then the chroma SAO on/off information 84 is obtained.After that, the luma edge band identification information 831 and theluma edge class information 832 may be obtained based on the luma SAOon/off information 83, and the chroma edge band identificationinformation 841 and the chroma edge class information 842 may beobtained based on the chroma SAO on/off information 84.

Accordingly, a context decoding operation is performed on the luma SAOon/off information 83 and the chroma SAO on/off information 84, and abypass decoding operation is performed on the luma edge bandidentification information 831, the luma edge class information 832, thechroma edge band identification information 841, and the chroma edgeclass information 842. Then, a bypass decoding operation may also beperformed on the absolute offset value information 87, the offset signinformation 881, and the band position information 883. Accordingly, inthe SAO syntax of FIG. 7C, because entropy decoding methods are switchedonly one time from a context decoding operation to a bypass decodingoperation and are not repeatedly performed, the efficiency of an overallentropy decoding operation may be improved.

According to the above-described exemplary embodiments, the SAO encodingapparatus 10 may perform bypass encoding on absolute offset valueinformation for SAO operation. Also, SAO type information may beseparated into SAO on/off information, edge band identificationinformation, and band position information (or edge class information),and context encoding may be performed on only the SAO on/offinformation. Accordingly, from among SAO parameters, by reducing thenumber of parameters to be context-decoded and increasing the number ofparameters to be bypass-decoded, the efficiency of an overall entropyencoding operation on the SAO parameters may be improved.

Also, from among SAO parameters, by using the same parameters as SAOon/off information, edge band identification information, and edge classinformation for first and second chroma components, and by using thesame parameter as SAO merge information for luma, and first and secondchroma components, a total transmission amount of the SAO parameters maybe reduced.

Furthermore, by reducing the number of times that context encoding andbypass encoding operations are switched, the efficiency of an entropyencoding operation may also be improved.

In addition, from among SAO parameters, because the SAO decodingapparatus 20 may perform context decoding on only SAO merge informationand SAO on/off information and may perform bypass decoding on aremaining bitstream, a total amount of calculation for decoding the SAOparameters may be greatly reduced.

Besides, because SAO on/off information, edge band identificationinformation, and edge class information for first and second chromacomponents are obtained as the same parameters, and SAO mergeinformation for luma, and first and second chroma components is obtainedas the same parameter, a total bit length of SAO parameters may bereduced and the amount of data to be parsed may also be reduced.

Also, because the number of times that context decoding and bypassdecoding operations are switched is reduced, the efficiency of anoverall entropy decoding operation on the SAO parameters may beimproved.

Accordingly, a video encoding apparatus and a video decoding apparatususing SAO operation, according to exemplary embodiments of the presentdisclosure, may classify pixel values of each MCU according to imagecharacteristics, such as an edge type or a band type, may signal anoffset value that is an average error value of pixel values having thesame characteristics, and may adjust unpredictable pixel values ofreconstructed pixels by the offset value, thereby minimizing an errorbetween an original image and a reconstructed image.

In the SAO encoding apparatus 10 and the SAO decoding apparatus 20, asdescribed above, video data may be split into MCUs, each MCU may beencoded and decoded based on coding units having a tree structure, andeach MCU may determine offset values according to pixel classification.Hereinafter, a video encoding method, a video encoding apparatus, avideo decoding method, and a video decoding apparatus based on codingunits having a tree structure and transformation units will be describedwith reference to FIGS. 8 through 27.

FIG. 8 is a block diagram of a video encoding apparatus 100 based oncoding units having a tree structure, according to exemplary embodimentsof the present disclosure.

The video encoding apparatus 100 involving video prediction based oncoding units having a tree structure includes a MCU splitter 110, acoding unit determiner 120, and an outputter 130.

The MCU splitter 110 may split a current picture based on a MCU that isa coding unit having a maximum size for a current picture of an image.If the current picture is larger than the MCU, image data of the currentpicture may be split into the at least one MCU. The MCU according toexemplary embodiments of the present disclosure may be a data unithaving a size of 32×32, 64×64, 128×128, 256×256, etc., in which a shapeof the data unit is a square having a width and length in squares of 2.The image data may be output to the coding unit determiner 120 accordingto the at least one MCU.

A coding unit according to exemplary embodiments of the presentdisclosure may be characterized by a maximum size and a depth. The depthdenotes the number of times the coding unit is spatially split from theMCU, and as the depth deepens, deeper coding units according to depthsmay be split from the MCU to a smallest coding unit (SCU). A depth ofthe MCU is an uppermost depth and a depth of the SCU is a lowermostdepth. Because a size of a coding unit corresponding to each depthdecreases as the depth of the MCU deepens, a coding unit correspondingto an upper depth may include a plurality of coding units correspondingto lower depths.

As described above, the image data of the current picture is split intothe MCUs according to a maximum size of the coding unit, and each of theMCUs may include deeper coding units that are split according to depths.Because the MCU according to exemplary embodiments of the presentdisclosure is split according to depths, the image data of the spacedomain included in the MCU may be hierarchically classified according todepths.

A maximum depth and a maximum size of a coding unit, which limit thetotal number of times a height and a width of the MCU are hierarchicallysplit, may be predetermined.

The coding unit determiner 120 encodes at least one split regionobtained by splitting a region of the MCU according to depths, anddetermines a depth to output a finally encoded image data according tothe at least one split region. In other words, the coding unitdeterminer 120 determines a coded depth by encoding the image data inthe deeper coding units according to depths, according to the MCU of thecurrent picture, and selecting a depth having the smallest encodingerror. The determined coded depth and the encoded image data accordingto the determined coded depth are output to the outputter 130.

The image data in the MCU is encoded based on the deeper coding unitscorresponding to at least one depth equal to or below the maximum depth,and results of encoding the image data are compared based on each of thedeeper coding units. A depth having the smallest encoding error may beselected after comparing encoding errors of the deeper coding units. Atleast one coded depth may be selected for each MCU.

The size of the MCU is split as a coding unit is hierarchically splitaccording to depths, and as the number of coding units increases. Also,even if coding units correspond to the same depth in one MCU, it isdetermined whether to split each of the coding units corresponding tothe same depth to a lower depth by measuring an encoding error of theimage data of the each coding unit, separately. Accordingly, even whenimage data is included in one MCU, the encoding errors may differaccording to regions in the one MCU, and thus the coded depths maydiffer according to regions in the image data. Thus, one or more codeddepths may be determined in one MCU, and the image data of the MCU maybe divided according to coding units of at least one coded depth.

Accordingly, the coding unit determiner 120 may determine coding unitshaving a tree structure included in the MCU. The ‘coding units having atree structure’ according to exemplary embodiments of the presentdisclosure include coding units corresponding to a depth determined tobe the coded depth, from among all deeper coding units included in theMCU. A coding unit of a coded depth may be hierarchically determinedaccording to depths in the same region of the MCU, and may beindependently determined in different regions. Similarly, a coded depthin a current region may be independently determined from a coded depthin another region.

A maximum depth according to exemplary embodiments of the presentdisclosure is an index related to the number of splitting times from aMCU to an SCU. A first maximum depth according to exemplary embodimentsof the present disclosure may denote the total number of splitting timesfrom the MCU to the SCU. A second maximum depth according to exemplaryembodiments of the present disclosure may denote the total number ofdepth levels from the MCU to the SCU. For example, when a depth of theMCU is 0, a depth of a coding unit, in which the MCU is split once, maybe set to 1, and a depth of a coding unit, in which the MCU is splittwice, may be set to 2. Here, if the SCU is a coding unit in which theMCU is split four times, 5 depth levels of depths 0, 1, 2, 3, and 4exist, and thus the first maximum depth may be set to 4, and the secondmaximum depth may be set to 5.

Prediction encoding and transformation may be performed according to theMCU. The prediction encoding and the transformation are also performedbased on the deeper coding units according to a depth equal to or depthsless than the maximum depth, according to the MCU.

Because the number of deeper coding units increases whenever the MCU issplit according to depths, encoding, including the prediction encodingand the transformation, is performed on all of the deeper coding unitsgenerated as the depth deepens. For convenience of description, theprediction encoding and the transformation will now be described basedon a coding unit of a current depth, in a MCU.

The video encoding apparatus 100 may select a size or shape of a dataunit for encoding the image data. In order to encode the image data,operations, such as prediction encoding, transformation, and entropyencoding, are performed, and at this time, the same data unit may beused for all operations or different data units may be used for eachoperation.

For example, the video encoding apparatus 100 may select not only acoding unit for encoding the image data, but also a data unit differentfrom the coding unit to perform the prediction encoding on the imagedata in the coding unit.

In order to perform prediction encoding in the MCU, the predictionencoding may be performed based on a coding unit corresponding to acoded depth, i.e., based on a coding unit that is no longer split tocoding units corresponding to a lower depth. Hereinafter, the codingunit that is no longer split and becomes a basis unit for predictionencoding will now be referred to as a ‘prediction unit’. A partitionobtained by splitting the prediction unit may include a prediction unitor a data unit obtained by splitting at least one of a height and awidth of the prediction unit. A partition is a data unit where aprediction unit of a coding unit is split, and a prediction unit may bea partition having the same size as a coding unit.

For example, when a coding unit of 2N×2N (where N is a positive integer)is no longer split and becomes a prediction unit of 2N×2N, and a size ofa partition may be 2N×2N, 2N×N, N×2N, or N×N. Examples of a partitiontype include symmetrical partitions that are obtained by symmetricallysplitting a height or width of the prediction unit, partitions obtainedby asymmetrically splitting the height or width of the prediction unit,such as 1:n or n:1, partitions that are obtained by geometricallysplitting the prediction unit, and partitions having arbitrary shapes.

A prediction mode of the prediction unit may be at least one of an intramode, a inter mode, and a skip mode. For example, the intra mode or theinter mode may be performed on the partition of 2N×2N, 2N×N, N×2N, orN×N. Also, the skip mode may be performed only on the partition of2N×2N. The encoding is independently performed on one prediction unit ina coding unit, thereby selecting a prediction mode having a smallestencoding error.

The video encoding apparatus 100 may also perform the transformation onthe image data in a coding unit based not only on the coding unit forencoding the image data, but also based on a data unit that is differentfrom the coding unit. In order to perform the transformation in thecoding unit, the transformation may be performed based on a data unithaving a size smaller than or equal to the coding unit. For example, thedata unit for the transformation may include a data unit for an intramode and a data unit for an inter mode.

The transformation unit in the coding unit may be recursively split intosmaller sized regions in the similar manner as the coding unit accordingto the tree structure. Thus, residues in the coding unit may be dividedaccording to the transformation unit having the tree structure accordingto transformation depths.

A transformation depth indicating the number of splitting times to reachthe transformation unit by splitting the height and width of the codingunit may also be set in the transformation unit. For example, in acurrent coding unit of 2N×2N, a transformation depth may be 0 when thesize of a transformation unit is 2N×2N, may be 1 when the size of thetransformation unit is N×N, and may be 2 when the size of thetransformation unit is N/2×N/2. In other words, the transformation unithaving the tree structure may be set according to the transformationdepths.

Encoding information according to coding units corresponding to a codeddepth requires not only information about the coded depth, but alsoabout information related to prediction encoding and transformation.Accordingly, the coding unit determiner 120 not only determines a codeddepth having a smallest encoding error, but also determines a partitiontype in a prediction unit, a prediction mode according to predictionunits, and a size of a transformation unit for transformation.

Coding units having a tree structure in a MCU and methods of determininga prediction unit/partition, and a transformation unit, according toexemplary embodiments of the present disclosure, will be described indetail below with reference to FIGS. 7 through 19.

The coding unit determiner 120 may measure an encoding error of deepercoding units according to depths by using Rate-Distortion Optimizationbased on Lagrangian multipliers.

The outputter 130 outputs the image data of the MCU, which is encodedbased on the at least one coded depth determined by the coding unitdeterminer 120, and information about the encoding mode according to thecoded depth, in bitstreams.

The encoded image data may be obtained by encoding residues of an image.

The information about the encoding mode according to coded depth mayinclude information about the coded depth, about the partition type inthe prediction unit, the prediction mode, and the size of thetransformation unit.

The information about the coded depth may be defined by using splitinformation according to depths, which indicates whether encoding isperformed on coding units of a lower depth instead of a current depth.If the current depth of the current coding unit is the coded depth,image data in the current coding unit is encoded and output, and thusthe split information may be defined not to split the current codingunit to a lower depth. Alternatively, if the current depth of thecurrent coding unit is not the coded depth, the encoding is performed onthe coding unit of the lower depth, and thus the split information maybe defined to split the current coding unit to obtain the coding unitsof the lower depth.

If the current depth is not the coded depth, encoding is performed onthe coding unit that is split into the coding unit of the lower depth.Because at least one coding unit of the lower depth exists in one codingunit of the current depth, the encoding is repeatedly performed on eachcoding unit of the lower depth, and thus the encoding may be recursivelyperformed for the coding units having the same depth.

Because the coding units having a tree structure are determined for oneMCU, and information about at least one encoding mode is determined fora coding unit of a coded depth, information about at least one encodingmode may be determined for one MCU. Also, a coded depth of the imagedata of the MCU may be different according to locations because theimage data is hierarchically split according to depths, and thusinformation about the coded depth and the encoding mode may be set forthe image data.

Accordingly, the outputter 130 may assign encoding information about acorresponding coded depth and an encoding mode to at least one of thecoding unit, the prediction unit, and a minimum unit included in theMCU.

The minimum coding unit according to exemplary embodiments of thepresent disclosure is a square data unit obtained by splitting the SCUconstituting the lowermost depth by 4. Alternatively, the minimum codingunit according to exemplary embodiments may be a maximum square dataunit that may be included in all of the coding units, prediction units,partition units, and transformation units included in the MCU.

For example, the encoding information output by the outputter 130 may beclassified into encoding information according to deeper coding units,and encoding information according to prediction units. The encodinginformation according to the deeper coding units may include theinformation about the prediction mode and about the size of thepartitions. The encoding information according to the prediction unitsmay include information about an estimated direction of an inter mode,about a reference image index of the inter mode, about a motion vector,about a chroma component of an intra mode, and about an interpolationmethod of the intra mode.

Information about a maximum size of the coding unit defined according topictures, slices, or GOPs, and information about a maximum depth may beinserted into a header of a bitstream, a sequence parameter set, or apicture parameter set.

Information about a maximum size of the transformation unit permittedwith respect to a current video, and information about a minimum size ofthe transformation unit may also be output through a header of abitstream, a sequence parameter set, or a picture parameter set. Theoutputter 130 may encode and output SAO parameters related to the offsetoperation technique described above with reference to FIGS. 1A through7C.

In the video encoding apparatus 100, the deeper coding unit may be acoding unit obtained by dividing a height or width of a coding unit ofan upper depth, which is one layer above, by two. In other words, whenthe size of the coding unit of the current depth is 2N×2N, the size ofthe coding unit of the lower depth is N×N. Also, the coding unit withthe current depth having a size of 2N×2N may include a maximum of 4 ofthe coding units with the lower depth.

Accordingly, the video encoding apparatus 100 may form the coding unitshaving the tree structure by determining coding units having an optimumshape and an optimum size for each MCU, based on the size of the MCU andthe maximum depth determined considering characteristics of the currentpicture. Also, because encoding may be performed on each MCU by usingany one of various prediction modes and transformations, an optimumencoding mode may be determined considering characteristics of thecoding unit of various image sizes.

Thus, if an image having a high resolution or a large data amount isencoded in a conventional macroblock, the number of macroblocks perpicture excessively increases. Accordingly, the number of pieces ofcompressed information generated for each macroblock increases, and thusit is difficult to transmit the compressed information and datacompression efficiency decreases. However, by using the video encodingapparatus 100, image compression efficiency may be increased because acoding unit is adjusted while considering characteristics of an imagewhile increasing a maximum size of a coding unit while considering asize of the image.

The video encoding apparatus 100 of FIG. 8 may perform operation of theSAO encoding apparatus 10 described above with reference to FIG. 1A.

The coding unit determiner 120 may perform operation of the SAO operator12 of the SAO encoding apparatus 10. An SAO type, offset valuesaccording to categories, and an SAO class may be determined with respectto each MCU.

The outputter 130 may perform operation of the entropy encoder 14. SAOparameters determined with respect to each MCU may be output. Leftwardand upward SAO merge information indicating whether to adopt SAOparameters of left and upper adjacent MCUs of a current MCU as the SAOparameters of the current MCU may be initially output. As an SAO type,an off type, an edge type, or a band type may be output. Absolute offsetvalue information is output. With respect to the band type, signinformation and band position information may be output. With respect tothe edge type, edge class information may be output and the signinformation of the offset value may not be output.

The outputter 130 may perform context encoding on each of the leftwardSAO merge information and the upward SAO merge information of the MCU.The outputter 130 may perform context encoding on SAO on/off informationwith respect to each of luma and chroma components.

If the SAO on/off information indicates to perform SAO operation, theoutputter 130 may perform bypass encoding on edge band identificationinformation with respect to each of luma and chroma components.

If the SAO on/off information indicates to perform SAO operation, theoutputter 130 may perform bypass encoding on absolute offset valueinformation with respect to each of luma, and first and second chromacomponents and each SAO category. With respect to a band type, theoutputter 130 may perform bypass encoding on offset sign information andband position information with respect to each of luma, and first andsecond chroma components. With respect to an edge type, the outputter130 may perform bypass encoding on edge class information with respectto each of luma and chroma components.

The edge class information for the first chroma component may also beapplied to the second chroma component, and the SAO on/off informationand the edge band identification information for the first chromacomponent may also be applied to the second chroma component.

FIG. 9 illustrates a block diagram of a video decoding apparatus 200based on coding units having a tree structure, according to exemplaryembodiments of the present disclosure.

The video decoding apparatus 200 that involves video prediction based oncoding units having a tree structure includes a receiver 210, an imagedata and encoding information extractor 220, and an image data decoder230.

Definitions of various terms, such as a coding unit, a depth, aprediction unit, a transformation unit, and information about variousencoding modes, for decoding operations of the video decoding apparatus200 are identical to those described with reference to FIG. 7 and thevideo encoding apparatus 100.

The receiver 210 receives and parses a bitstream of an encoded video.The image data and encoding information extractor 220 extracts encodedimage data for each coding unit from the parsed bitstream, in which thecoding units have a tree structure according to each MCU, and outputsthe extracted image data to the image data decoder 230. The image dataand encoding information extractor 220 may extract information about amaximum size of a coding unit of a current picture, from a header aboutthe current picture, a sequence parameter set, or a picture parameterset.

Also, the image data and encoding information extractor 220 extractsinformation about a coded depth and an encoding mode for the codingunits having a tree structure according to each MCU, from the parsedbitstream. The extracted information about the coded depth and theencoding mode is output to the image data decoder 230. In other words,the image data in a bit stream is split into the MCU so that the imagedata decoder 230 decodes the image data for each MCU.

The information about the coded depth and the encoding mode according tothe MCU may be set for information about at least one coding unitcorresponding to the coded depth, and information about an encoding modemay include information about a partition type of a corresponding codingunit corresponding to the coded depth, about a prediction mode, and asize of a transformation unit. Also, splitting information according todepths may be extracted as the information about the coded depth.

The information about the coded depth and the encoding mode according toeach MCU extracted by the image data and encoding information extractor220 is information about a coded depth and an encoding mode determinedto generate a minimum encoding error when an encoder, such as the videoencoding apparatus 100, repeatedly performs encoding for each deepercoding unit according to depths according to each MCU. Accordingly, thevideo decoding apparatus 200 may reconstruct an image by decoding theimage data according to a coded depth and an encoding mode thatgenerates the minimum encoding error.

Because encoding information about the coded depth and the encoding modemay be assigned to a predetermined data unit from among a correspondingcoding unit, a prediction unit, and a minimum unit, the image data andencoding information extractor 220 may extract the information about thecoded depth and the encoding mode according to the predetermined dataunits. If information about a coded depth and encoding mode of acorresponding MCU is recorded according to predetermined data units, thepredetermined data units to which the same information about the codeddepth and the encoding mode is assigned may be inferred to be the dataunits included in the same MCU.

The image data decoder 230 reconstructs the current picture by decodingthe image data in each MCU based on the information about the codeddepth and the encoding mode according to the MCUs. In other words, theimage data decoder 230 may decode the encoded image data based on theextracted information about the partition type, the prediction mode, andthe transformation unit for each coding unit from among the coding unitshaving the tree structure included in each MCU. A decoding process mayinclude a prediction including intra prediction and motion compensation,and an inverse transformation.

The image data decoder 230 may perform intra prediction or motioncompensation according to a partition and a prediction mode of eachcoding unit, based on the information about the partition type and theprediction mode of the prediction unit of the coding unit according tocoded depths.

In addition, the image data decoder 230 may read information about atransformation unit according to a tree structure for each coding unitto perform inverse transformation based on transformation units for eachcoding unit, for inverse transformation for each MCU. Through theinverse transformation, a pixel value of the space domain of the codingunit may be reconstructed.

The image data decoder 230 may determine a coded depth of a current MCUby using split information according to depths. If the split informationindicates that image data is no longer split in the current depth, thecurrent depth is a coded depth. Accordingly, the image data decoder 230may decode encoded data in the current MCU by using the informationabout the partition type of the prediction unit, the prediction mode,and the size of the transformation unit for each coding unitcorresponding to the coded depth.

In other words, data units containing the encoding information includingthe same split information may be gathered by observing the encodinginformation set assigned for the predetermined data unit from among thecoding unit, the prediction unit, and the minimum unit, and the gathereddata units may be considered to be one data unit to be decoded by theimage data decoder 230 in the same encoding mode. As such, the currentcoding unit may be decoded by obtaining the information about theencoding mode for each coding unit.

Also, the video decoding apparatus 200 of FIG. 9 may perform operationof the SAO decoding apparatus 20 described above with reference to FIG.2A.

The image data and encoding information extractor 220 and the receiver210 may perform operations of the SAO context decoder 24 and the SAObypass decoder 26 of the SAO decoding apparatus 20. The image datadecoder 230 may perform operation of the SAO operator 28 of the SAOdecoding apparatus 20.

The image data and encoding information extractor 220 may obtain abitstream of SAO parameters from a bitstream of an MCU, may performentropy decoding on the bitstream, and thus may reconstruct symbols ofthe SAO parameters.

Leftward SAO merge information and upward SAO merge information may beobtain, and context decoding may be performed on each of the leftwardSAO merge information and the upward SAO merge information. The imagedata and encoding information extractor 220 may obtain one bit of SAOon/off information with respect to each of luma and chroma components.The image data and encoding information extractor 220 may performcontext decoding on luma SAO on/off information and chroma SAO on/offinformation.

If the SAO on/off information indicates to perform SAO operation, imagedata and encoding information extractor 220 may obtain edge bandidentification information with respect to each of luma and chromacomponents and may perform bypass decoding on one bit of the edge bandidentification information.

If the SAO on/off information indicates to perform SAO operation, theimage data and encoding information extractor 220 may obtain absoluteoffset value information with respect to each of luma, and first andsecond chroma components and each SAO category, and may perform bypassdecoding on the absolute offset value information. With respect to aband type, the image data and encoding information extractor 220 mayobtain offset sign information and band position information withrespect to each of luma, and first and second chroma components, and mayperform bypass decoding on each parameter. With respect to an edge type,the image data and encoding information extractor 220 may perform bypassdecoding edge class information obtained with respect to each of lumaand chroma components.

The edge class information for the first chroma component may also beapplied to the second chroma component, and the SAO on/off informationand the edge band identification information for the first chromacomponent may also be applied to the second chroma component.

The image data decoder 230 may generate a reconstructed pixel capable ofminimizing an error between an original pixel and the reconstructedpixel, by adjusting a pixel value of the reconstructed pixel by acorresponding offset value. Offsets of reconstructed pixels of each MCUmay be adjusted based on the parsed SAO parameters.

Thus, the video decoding apparatus 200 may obtain information about atleast one coding unit that generates the minimum encoding error whenencoding is recursively performed for each MCU, and may use theinformation to decode the current picture. In other words, the codingunits having the tree structure determined to be the optimum codingunits in each MCU may be decoded.

Accordingly, even if image data has high resolution and a large amountof data, the image data may be efficiently decoded and reconstructed byusing a size of a coding unit and an encoding mode, which are adaptivelydetermined according to characteristics of the image data, by usinginformation about an optimum encoding mode received from an encoder.

FIG. 10 illustrates a diagram for describing a concept of coding unitsaccording to exemplary embodiments of the present disclosure.

A size of a coding unit may be expressed by width×height, and may be64×64, 32×32, 16×16, and 8×8. A coding unit of 64×64 may be split intopartitions of 64×64, 64×32, 32×64, or 32×32, and a coding unit of 32×32may be split into partitions of 32×32, 32×16, 16×32, or 16×16, a codingunit of 16×16 may be split into partitions of 16×16, 16×8, 8×16, or 8×8,and a coding unit of 8×8 may be split into partitions of 8×8, 8×4, 4×8,or 4×4.

In video data 310, a resolution is 1920×1080, a maximum size of a codingunit is 64, and a maximum depth is 2. In video data 320, a resolution is1920×1080, a maximum size of a coding unit is 64, and a maximum depth is3. In video data 330, a resolution is 352×288, a maximum size of acoding unit is 16, and a maximum depth is 1. The maximum depth shown inFIG. 10 denotes a total number of splits from a MCU to a minimumdecoding unit.

If a resolution is high or a data amount is large, a maximum size of acoding unit may be large to not only increase encoding efficiency butalso to accurately reflect characteristics of an image. Accordingly, themaximum size of the coding unit of the video data 310 and 320 having ahigher resolution than the video data 330 may be 64.

Because the maximum depth of the video data 310 is 2, coding units 315of the vide data 310 may include a MCU having a long axis size of 64,and coding units having long axis sizes of 32 and 16 because depths aredeepened to two layers by splitting the MCU twice. Because the maximumdepth of the video data 330 is 1, coding units 335 of the video data 330may include a MCU having a long axis size of 16, and coding units havinga long axis size of 8 because depths are deepened to one layer bysplitting the MCU once.

Because the maximum depth of the video data 320 is 3, coding units 325of the video data 320 may include a MCU having a long axis size of 64,and coding units having long axis sizes of 32, 16, and 8 because thedepths are deepened to 3 layers by splitting the MCU three times. As adepth deepens, detailed information may be precisely expressed.

FIG. 11 illustrates a block diagram of an image encoder 400 based oncoding units, according to exemplary embodiments of the presentdisclosure.

The image encoder 400 performs operations of the coding unit determiner120 of the video encoding apparatus 100 to encode image data. In otherwords, an intra predictor 410 performs intra prediction on coding unitsin an intra mode, from among a current frame 405, and a motion estimator420 and a motion compensator 425 respectively perform motion estimationand motion compensation on coding units in an inter mode from among thecurrent frame 405 by using the current frame 405, and a reference frame495.

Data output from the intra predictor 410, the motion estimator 420, andthe motion compensator 425 is output as a quantized transformationcoefficient through a transformer 430 and a quantizer 440. The quantizedtransformation coefficient is reconstructed as data in the space domainthrough an inverse quantizer 460 and an inverse transformer 470, and thereconstructed data in the space domain is output as the reference frame495 after being post-processed through a deblocking filter 480 and anSAO operator 490. The quantized transformation coefficient may be outputas a bitstream 455 through an entropy encoder 450.

In order for the image encoder 400 to be applied in the video encodingapparatus 100, all elements of the image encoder 400, i.e., the intrapredictor 410, the motion estimator 420, the motion compensator 425, thetransformer 430, the quantizer 440, the entropy encoder 450, the inversequantizer 460, the inverse transformer 470, the deblocking filter 480,and the SAO operator 490 perform operations based on each coding unitamong coding units having a tree structure while considering the maximumdepth of each MCU.

In particular, the intra predictor 410, the motion estimator 420, andthe motion compensator 425 determine partitions and a prediction mode ofeach coding unit from among the coding units having a tree structurewhile considering the maximum size and the maximum depth of a currentMCU, and the transformer 430 determines the size of the transformationunit in each coding unit from among the coding units having a treestructure.

The SAO operator 490 may classify pixels according to an edge type (or aband type) of each MCU of the reference frame 495, may determine an edgedirection (or a start band position), and may determine an average errorvalue of reconstructed pixels included in each category. With respect toeach MCU, SAO merge information, an SAO type, and offset values may beencoded and signaled.

The entropy encoder 450 may perform CABAC encoding on SAO parametersincluding SAO merge information, SAO type information, and offset valuesfor SAO operation. For example, for the SAO type information, onecontext model may be used for only a first bit and bypass-mode CABACencoding may be performed on remaining bits. Two context models may beused for the offset values, and one context model may be used for eachof left SAO merge information and upper SAO merge information.Accordingly, a total of five context models may be used to perform CABACencoding on the SAO parameters.

FIG. 12 illustrates a block diagram of an image decoder 500 based oncoding units, according to exemplary embodiments of the presentdisclosure.

A parser 510 parses encoded image data to be decoded and informationabout encoding required for decoding from a bitstream 505. The encodedimage data is output as inverse quantized data through an entropydecoder 520 and an inverse quantizer 530, and the inverse quantized datais reconstructed to image data in the space domain through an inversetransformer 540.

An intra predictor 550 performs intra prediction on coding units in anintra mode with respect to the image data in the space domain, and amotion compensator 560 performs motion compensation on coding units inan inter mode by using a reference frame 585.

The image data in the space domain, which passed through the intrapredictor 550 and the motion compensator 560, may be output as areconstructed frame 595 after being post-processed through a deblockingfilter 570 and an SAO operator 580. Also, the image data that ispost-processed through the deblocking filter 570 and the SAO operator580 may be output as the reference frame 585.

In order to decode the image data in the image data decoder 230 of thevideo decoding apparatus 200, the image decoder 500 may performoperations that are performed after the parser 510.

In order for the image decoder 500 to be applied in the video decodingapparatus 200, all elements of the image decoder 500, i.e., the parser510, the entropy decoder 520, the inverse quantizer 530, the inversetransformer 540, the intra predictor 550, the motion compensator 560,the deblocking filter 570, and the SAO operator 580 perform operationsbased on coding units having a tree structure for each MCU.

In particular, the intra prediction 550 and the motion compensator 560perform operations based on partitions and a prediction mode for each ofthe coding units having a tree structure, and the inverse transformer540 perform operations based on a size of a transformation unit for eachcoding unit.

The entropy decoder 520 may perform CABAC decoding on SAO parameters toparse SAO merge information, SAO type information, and offset values forSAO operation from the SAO parameters. For example, for the SAO typeinformation, one context model may be used for only a first bit andbypass-mode CABAC decoding may be performed on remaining bits. Twocontext models may be used for the offset values, and one context modelmay be used for each of left SAO merge information and upper SAO mergeinformation. Accordingly, a total of five context models may be used toperform CABAC decoding on the SAO parameters.

The image decoder 500 may extract SAO parameters of MCUs from abitstream. Based on SAO merge information from among the SAO parametersof a current MCU, SAO parameters of the current MCU, which are the sameas those of an adjacent MCU, may be reconstructed. By using an SAO typeand offset values from among the SAO parameters of the current MCU, eachof reconstructed pixels of MCUs of the reconstructed frame 595 may beadjusted by an offset value corresponding to a category according to theedge type or the band type.

FIG. 13 illustrates a diagram illustrating deeper coding units accordingto depths, and partitions, according to exemplary embodiments of thepresent disclosure.

The video encoding apparatus 100 and the video decoding apparatus 200use hierarchical coding units to consider characteristics of an image. Amaximum height, a maximum width, and a maximum depth of coding units maybe adaptively determined according to the characteristics of the image,or may be differently set by a user. Sizes of deeper coding unitsaccording to depths may be determined according to the predeterminedmaximum size of the coding unit.

In a hierarchical structure 600 of coding units, according to exemplaryembodiments of the present disclosure, the maximum height and themaximum width of the coding units are each 64, and the maximum depth is4. In this case, the maximum depth refers to a total number of times thecoding unit is split from the MCU to the SCU. Because a depth deepensalong a vertical axis of the hierarchical structure 600, a height and awidth of the deeper coding unit are each split. Also, a prediction unitand partitions, which are bases for prediction encoding of each deepercoding unit, are shown along a horizontal axis of the hierarchicalstructure 600.

In other words, a coding unit 610 is a MCU in the hierarchical structure600, wherein a depth is 0 and a size, i.e., a height by width, is 64×64.The depth deepens along the vertical axis, and a coding unit 620 havinga size of 32×32 and a depth of 1, a coding unit 630 having a size of16×16 and a depth of 2, and a coding unit 640 having a size of 8×8 and adepth of 3. The coding unit 640 having a size of 4×4 and a depth of 3 isan SCU.

The prediction unit and the partitions of a coding unit are arrangedalong the horizontal axis according to each depth. In other words, ifthe coding unit 610 having a size of 64×64 and a depth of 0 is aprediction unit, the prediction unit may be split into partitionsinclude in the encoding unit 610, i.e. a partition 610 having a size of64×64, partitions 612 having the size of 64×32, partitions 614 havingthe size of 32×64, or partitions 616 having the size of 32×32.

Similarly, a prediction unit of the coding unit 620 having the size of32×32 and the depth of 1 may be split into partitions included in thecoding unit 620, i.e. a partition 620 having a size of 32×32, partitions622 having a size of 32×16, partitions 624 having a size of 16×32, andpartitions 626 having a size of 16×16.

Similarly, a prediction unit of the coding unit 630 having the size of16×16 and the depth of 2 may be split into partitions included in thecoding unit 630, i.e. a partition having a size of 16×16 included in thecoding unit 630, partitions 632 having a size of 16×8, partitions 634having a size of 8×16, and partitions 636 having a size of 8×8.

Similarly, a prediction unit of the coding unit 640 having the size of8×8 and the depth of 3 may be split into partitions included in thecoding unit 640, i.e. a partition having a size of 8×8 included in thecoding unit 640, partitions 642 having a size of 8×4, partitions 644having a size of 4×8, and partitions 646 having a size of 4×4.

In order to determine the at least one coded depth of the coding unitsconstituting the MCU 610, the coding unit determiner 120 of the videoencoding apparatus 100 performs encoding for coding units correspondingto each depth included in the MCU 610.

A number of deeper coding units according to depths including data inthe same range and the same size increases as the depth deepens. Forexample, four coding units corresponding to a depth of 2 are required tocover data that is included in one coding unit corresponding to a depthof 1. Accordingly, in order to compare encoding results of the same dataaccording to depths, the coding unit corresponding to the depth of 1 andfour coding units corresponding to the depth of 2 are each encoded.

In order to perform encoding for a current depth from among the depths,a smallest encoding error may be selected for the current depth byperforming encoding for each prediction unit in the coding unitscorresponding to the current depth, along the horizontal axis of thehierarchical structure 600. Alternatively, the minimum encoding errormay be searched for by comparing the smallest encoding errors accordingto depths, by performing encoding for each depth as the depth deepensalong the vertical axis of the hierarchical structure 600. A depth and apartition having the minimum encoding error in the coding unit 610 maybe selected as the coded depth and a partition type of the coding unit610.

FIG. 14 illustrates a diagram for describing a relationship between acoding unit 710 and transformation units 720, according to exemplaryembodiments of the present disclosure.

The video encoding apparatus 100 or the video decoding apparatus 200encodes or decodes an image according to coding units having sizessmaller than or equal to a MCU for each MCU. Sizes of transformationunits for transformation during encoding may be selected based on dataunits that are not larger than a corresponding coding unit.

For example, in the video encoding apparatus 100 or the video decodingapparatus 200, if a size of the coding unit 710 is 64×64, transformationmay be performed by using the transformation units 720 having a size of32×32.

Also, data of the coding unit 710 having the size of 64×64 may beencoded by performing the transformation on each of the transformationunits having the size of 32×32, 16×16, 8×8, and 4×4, which are smallerthan 64×64, and then a transformation unit having the least coding errormay be selected.

FIG. 15 illustrates a diagram for describing encoding information ofcoding units corresponding to a coded depth, according to exemplaryembodiments of the present disclosure.

The outputter 130 of the video encoding apparatus 100 may encode andtransmit information 800 about a partition type, information 810 about aprediction mode, and information 820 about a size of a transformationunit for each coding unit corresponding to a coded depth, as informationabout an encoding mode.

The information 800 indicates information about a shape of a partitionobtained by splitting a prediction unit of a current coding unit,wherein the partition is a data unit for prediction encoding the currentcoding unit. For example, a current coding unit CU_0 having a size of2N×2N may be split into any one of a partition 802 having a size of2N×2N, a partition 804 having a size of 2N×N, a partition 806 having asize of N×2N, and a partition 808 having a size of N×N. Here, theinformation 800 about a partition type is set to indicate one of thepartition 804 having a size of 2N×N, the partition 806 having a size ofN×2N, and the partition 808 having a size of N×N.

The information 810 indicates a prediction mode of each partition. Forexample, the information 810 may indicate a mode of prediction encodingperformed on a partition indicated by the information 800, i.e., anintra mode 812, an inter mode 814, or a skip mode 816.

The information 820 indicates a transformation unit to be based on whentransformation is performed on a current coding unit. For example, thetransformation unit may be a first intra transformation unit 822, asecond intra transformation unit 824, a first inter transformation unit826, or a second inter transformation unit 828.

The image data and encoding information extractor 220 of the videodecoding apparatus 200 may extract and use the information 800, 810, and820 for decoding, according to each deeper coding unit.

FIG. 16 is a diagram of deeper coding units according to depths,according to exemplary embodiments of the present disclosure.

Split information may be used to indicate a change of a depth. The spiltinformation indicates whether a coding unit of a current depth is splitinto coding units of a lower depth.

A prediction unit 910 for prediction encoding a coding unit 900 having adepth of 0 and a size of 2N_0×2N_0 may include partitions of a partitiontype 912 having a size of 2N_0×2N_0, a partition type 914 having a sizeof 2N_0×N_0, a partition type 916 having a size of N_0×2N_0, and apartition type 918 having a size of N_0×N_0. FIG. 9 only illustrates thepartition types 912 through 918 which are obtained by symmetricallysplitting the prediction unit 910, but a partition type is not limitedthereto, and the partitions of the prediction unit 910 may includeasymmetrical partitions, partitions having a predetermined shape, andpartitions having a geometrical shape.

Prediction encoding is repeatedly performed on one partition having asize of 2N_0×2N_0, two partitions having a size of 2N_0×N_0, twopartitions having a size of N_0×2N_0, and four partitions having a sizeof N_0×N_0, according to each partition type. The prediction encoding inan intra mode and an inter mode may be performed on the partitionshaving the sizes of 2N_0×2N_0×2N_0, N_0×2N_0, 2N_0×N_0, and N_0×N_0. Theprediction encoding in a skip mode is performed only on the partitionhaving the size of 2N_0×2N_0.

If an encoding error is smallest in one of the partition types 912through 916, the prediction unit 910 may not be split into a lowerdepth.

If the encoding error is the smallest in the partition type 918, a depthis changed from 0 to 1 to split the partition type 918 in operation 920,and encoding is repeatedly performed on coding units 930 having a depthof 2 and a size of N_0×N_0 to search for a minimum encoding error.

A prediction unit 940 for prediction encoding the coding unit 930 havinga depth of 1 and a size of 2N_1×2N_1 (=N_0×N_0) may include partitionsof a partition type 942 having a size of 2N_1×2N_1, a partition type 944having a size of 2N_1×N_1, a partition type 946 having a size ofN_1×2N_1, and a partition type 948 having a size of N_1×N_1.

If an encoding error is the smallest in the partition type 948, a depthis changed from 1 to 2 to split the partition type 948 in operation 950,and encoding is repeatedly performed on coding units 960, which have adepth of 2 and a size of N_2×N_2 to search for a minimum encoding error.

When a maximum depth is d, split operation according to each depth maybe performed up to when a depth becomes d−1, and split information maybe encoded as up to when a depth is one of 0 to d−2. In other words,when encoding is performed up to when the depth is d−1 after a codingunit corresponding to a depth of d−2 is split in operation 970, aprediction unit 990 for prediction encoding a coding unit 980 having adepth of d−1 and a size of 2N_(d−1)×2N_(d−1) may include partitions of apartition type 992 having a size of 2N_(d−1)×2N_(d−1), a partition type994 having a size of 2N_(d−1)×N_(d−1), a partition type 996 having asize of N_(d−1)×2N_(d−1), and a partition type 998 having a size ofN_(d−1)×N_(d−1).

Prediction encoding may be repeatedly performed on one partition havinga size of 2N_(d−1)×2N_(d−1), two partitions having a size of2N_(d−1)×N_(d−1), two partitions having a size of N_(d−1)×2N_(d−1), fourpartitions having a size of N_(d−1)×N_(d−1) from among the partitiontypes 992 through 998 to search for a partition type having a minimumencoding error.

Even when the partition type 998 has the minimum encoding error, becausea maximum depth is d, a coding unit CU_(d−1) having a depth of d−1 is nolonger split to a lower depth, and a coded depth for the coding unitsconstituting a current MCU 900 is determined to be d−1 and a partitiontype of the current MCU 900 may be determined to be N_(d−1)×N_(d−1).Also, because the maximum depth is d and an SCU 980 having a lowermostdepth of d−1 is no longer split to a lower depth, split information ofthe SCU 980 is not set.

A data unit 999 may be a ‘minimum unit’ for the current MCU. A minimumunit according to exemplary embodiments of the present disclosure may bea square data unit obtained by splitting an SCU 980 by 4. By performingthe encoding repeatedly, the video encoding apparatus 100 may select adepth having the smallest encoding error by comparing encoding errorsaccording to depths of the coding unit 900 to determine a coded depth,and set a corresponding partition type and a prediction mode as anencoding mode of the coded depth.

As such, the minimum encoding errors according to depths are compared inall of the depths of 1 through d, and a depth having the smallestencoding error may be determined as a coded depth. The coded depth, thepartition type of the prediction unit, and the prediction mode may beencoded and transmitted as information about an encoding mode. Also,because a coding unit is split from a depth of 0 to a coded depth, onlysplit information of the coded depth is set to 0, and split informationof depths excluding the coded depth is set to 1.

The image data and encoding information extractor 220 of the videodecoding apparatus 200 may extract and use the information about thecoded depth and the prediction unit of the coding unit 900 to decode thepartition 912. The video decoding apparatus 200 may determine a depth,in which split information is 0, as a coded depth by using splitinformation according to depths, and use information about an encodingmode of the corresponding depth for decoding.

FIGS. 17 through 19 illustrate diagrams for describing a relationshipbetween coding units 1010, prediction units 1060, and transformationunits 1070, according to exemplary embodiments of the presentdisclosure.

The coding units 1010 are coding units having a tree structure,corresponding to coded depths determined by the video encoding apparatus100, in a MCU. The prediction units 1060 are partitions of predictionunits of each of the coding units 1010, and the transformation units1070 are transformation units of each of the coding units 1010.

When a depth of a MCU is 0 in the coding units 1010, depths of codingunits 1012 and 1054 are 1, depths of coding units 1014, 1016, 1018,1028, 1050, and 1052 are 2, depths of coding units 1020, 1022, 1024,1026, 1030, 1032, and 1048 are 3, and depths of coding units 1040, 1042,1044, and 1046 are 4.

In the prediction units 1060, some encoding units 1014, 1016, 1022,1032, 1048, 1050, 1052, and 1054 are obtained by splitting the codingunits in the encoding units 1010. In other words, partition types in thecoding units 1014, 1022, 1050, and 1054 have a size of 2N×N, partitiontypes in the coding units 1016, 1048, and 1052 have a size of N×2N, anda partition type of the coding unit 1032 has a size of N×N. Predictionunits and partitions of the coding units 1010 are smaller than or equalto each coding unit.

Transformation or inverse transformation is performed on image data ofthe coding unit 1052 in the transformation units 1070 in a data unitthat is smaller than the coding unit 1052. Also, the coding units 1014,1016, 1022, 1032, 1048, 1050, and 1052 in the transformation units 1070are different from those in the prediction units 1060 in terms of sizesand shapes. In other words, the video encoding and decoding apparatuses100 and 200 may perform intra prediction, motion estimation, motioncompensation, transformation, and inverse transformation individually ona data unit in the same coding unit.

Accordingly, encoding is recursively performed on each of coding unitshaving a hierarchical structure in each region of a MCU to determine anoptimum coding unit, and thus coding units having a recursive treestructure may be obtained. Encoding information may include splitinformation about a coding unit, information about a partition type,information about a prediction mode, and information about a size of atransformation unit. Table 1 shows the encoding information that may beset by the video encoding and decoding apparatuses 100 and 200.

TABLE 1 Split Information 0 Split (Encoding on Coding Unit having Sizeof 2N × 2N and Current Depth of d) Information 1 Prediction PartitionType Size of Transformation Unit Repeatedly Mode Encode IntraSymmetrical Asymmetrical Split Split Coding Units Inter PartitionPartition Information 0 of Information 1 of having Lower Skip Type TypeTransformation Transformation Depth of d + 1 (Only Unit Unit 2N × 2N) 2N× 2N 2N × nU 2N × 2N N × N 2N × N 2N × nD (Symmetrical  N × 2N nL × 2NType)  N × N nR × 2N N/2 × N/2 (Asymmetrical Type)

The outputter 130 of the video encoding apparatus 100 may output theencoding information about the coding units having a tree structure, andthe image data and encoding information extractor 220 of the videodecoding apparatus 200 may extract the encoding information about thecoding units having a tree structure from a received bitstream.

Split information indicates whether a current coding unit is split intocoding units of a lower depth. If split information of a current depth dis 0, a depth, in which a current coding unit is no longer split into alower depth, is a coded depth, and thus information about a partitiontype, prediction mode, and a size of a transformation unit may bedefined for the coded depth. If the current coding unit is further splitaccording to the split information, encoding is independently performedon four split coding units of a lower depth.

A prediction mode may be one of an intra mode, an inter mode, and a skipmode. The intra mode and the inter mode may be defined in all partitiontypes, and the skip mode is defined only in a partition type having asize of 2N×2N.

The information about the partition type may indicate symmetricalpartition types having sizes of 2N×2N, 2N×N, N×2N, and N×N, which areobtained by symmetrically splitting a height or a width of a predictionunit, and asymmetrical partition types having sizes of 2N×nU, 2N×nD,nL×2N, and nR×2N, which are obtained by asymmetrically splitting theheight or width of the prediction unit. The asymmetrical partition typeshaving the sizes of 2N×nU and 2N×nD may be respectively obtained bysplitting the height of the prediction unit in 1:3 and 3:1, and theasymmetrical partition types having the sizes of nL×2N and nR×2N may berespectively obtained by splitting the width of the prediction unit in1:3 and 3:1

The size of the transformation unit may be set to be two types in theintra mode and two types in the inter mode. In other words, if splitinformation of the transformation unit is 0, the size of thetransformation unit may be 2N×2N, which is the size of the currentcoding unit. If split information of the transformation unit is 1, thetransformation units may be obtained by splitting the current codingunit. Also, if a partition type of the current coding unit having thesize of 2N×2N is a symmetrical partition type, a size of atransformation unit may be N×N, and if the partition type of the currentcoding unit is an asymmetrical partition type, the size of thetransformation unit may be N/2×N/2.

The encoding information about coding units having a tree structure mayinclude at least one of a coding unit corresponding to a coded depth, aprediction unit, and a minimum unit. The coding unit corresponding tothe coded depth may include at least one of a prediction unit and aminimum unit containing the same encoding information.

Accordingly, it is determined whether adjacent data units are includedin the same coding unit corresponding to the coded depth by comparingencoding information of the adjacent data units. Also, a correspondingcoding unit corresponding to a coded depth is determined by usingencoding information of a data unit, and thus a distribution of codeddepths in a MCU may be determined.

Accordingly, if a current coding unit is predicted based on encodinginformation of adjacent data units, encoding information of data unitsin deeper coding units adjacent to the current coding unit may bedirectly referred to and used.

Alternatively, if a current coding unit is predicted based on encodinginformation of adjacent data units, data units adjacent to the currentcoding unit are searched using encoded information of the data units,and the searched adjacent coding units may be referred for predictingthe current coding unit.

FIG. 20 illustrates a diagram for describing a relationship between acoding unit, a prediction unit, and a transformation unit, according toencoding mode information of Table 1.

A MCU 1300 includes coding units (CUs) 1302, 1304, 1306, 1312, 1314,1316, and 1318 of coded depths. Here, because the coding unit 1318 is acoding unit of a coded depth, split information may be set to 0.Information about a partition type of the coding unit 1318 having a sizeof 2N×2N may be set to be one of a partition type 1322 having a size of2N×2N, a partition type 1324 having a size of 2N×N, a partition type1326 having a size of N×2N, a partition type 1328 having a size of N×N,a partition type 1332 having a size of 2N×nU, a partition type 1334having a size of 2N×nD, a partition type 1336 having a size of nL×2N,and a partition type 1338 having a size of nR×2N.

Split information (TU size flag) of a transformation unit is a type of atransformation index. The size of the transformation unit correspondingto the transformation index may be changed according to a predictionunit type or partition type of the coding unit.

For example, when the partition type is set to be symmetrical, i.e. thepartition type 1322, 1324, 1326, or 1328, a transformation unit 1342having a size of 2N×2N is set if a TU size flag of a transformation unitis 0, and a transformation unit 1344 having a size of N×N is set if a TUsize flag is 1.

When the partition type is set to be asymmetrical, i.e., the partitiontype 1332, 1334, 1336, or 1338, a transformation unit 1352 having a sizeof 2N×2N is set if a TU size flag is 0, and a transformation unit 1354having a size of N/2×N/2 is set if a TU size flag is 1.

Referring to FIG. 20, the TU size flag is a flag having a value or 0 or1, but the TU size flag is not limited to 1 bit, and a transformationunit may be hierarchically split having a tree structure while the TUsize flag increases from 0. Split information (TU size flag) of atransformation unit may be an example of a transformation index.

In this case, the size of a transformation unit that has been actuallyused may be expressed by using a TU size flag of a transformation unit,according to exemplary embodiments according to the present disclosure,together with a maximum size and minimum size of the transformationunit. The video encoding apparatus 100 is capable of encoding maximumtransformation unit size information, minimum transformation unit sizeinformation, and a maximum TU size flag. The result of encoding themaximum transformation unit size information, the minimum transformationunit size information, and the maximum TU size flag may be inserted intoan SPS. The video decoding apparatus 200 may decode video by using themaximum transformation unit size information, the minimum transformationunit size information, and the maximum TU size flag.

For example, (a) if the size of a current coding unit is 64×64 and amaximum transformation unit size is 32×32, (a−1) then the size of atransformation unit may be 32×32 when a TU size flag is 0, (a−2) may be16×16 when the TU size flag is 1, and (a−3) may be 8×8 when the TU sizeflag is 2.

As another example, (b) if the size of the current coding unit is 32×32and a minimum transformation unit size is 32×32, (b−1) then the size ofthe transformation unit may be 32×32 when the TU size flag is 0. Here,the TU size flag cannot be set to a value other than 0, because the sizeof the transformation unit cannot be less than 32×32.

As another example, (c) if the size of the current coding unit is 64×64and a maximum TU size flag is 1, then the TU size flag may be 0 or 1.Here, the TU size flag cannot be set to a value other than 0 or 1.

Thus, if it is defined that the maximum TU size flag is‘MaxTransformSizeIndex’, a minimum transformation unit size is‘MinTransformSize’, and a transformation unit size is ‘RootTuSize’ whenthe TU size flag is 0, then a current minimum transformation unit size‘CurrMinTuSize’ that can be determined in a current coding unit, may bedefined by Equation (1):

CurrMinTuSize=max (MinTransformSize,RootTuSize/(2̂MaxTransformSizeIndex))  (1)

Compared to the current minimum transformation unit size ‘CurrMinTuSize’that can be determined in the current coding unit, a transformation unitsize ‘RootTuSize’ when the TU size flag is 0 may denote a maximumtransformation unit size that can be selected in the system. In Equation(1), ‘RootTuSize/(2̂MaxTransformSizeIndex)’ denotes a transformation unitsize when the transformation unit size ‘RootTuSize’, when the TU sizeflag is 0, is split a number of times corresponding to the maximum TUsize flag, and ‘MinTransformSize’ denotes a minimum transformation size.Thus, a smaller value from among ‘RootTuSize/(2̂MaxTransformSizeIndex)’and ‘MinTransformSize’ may be the current minimum transformation unitsize ‘CurrMinTuSize’ that can be determined in the current coding unit.

According to exemplary embodiments according to the present disclosure,the maximum transformation unit size RootTuSize may vary according tothe type of a prediction mode.

For example, if a current prediction mode is an inter mode, then‘RootTuSize’ may be determined by using Equation (2) below. In Equation(2), ‘MaxTransformSize’ denotes a maximum transformation unit size, and‘PUSize’ denotes a current prediction unit size.

RootTuSize=min(MaxTransformSize, PUSize)  (2)

In other words, if the current prediction mode is the inter mode, thetransformation unit size ‘RootTuSize’, when the TU size flag is 0, maybe a smaller value from among the maximum transformation unit size andthe current prediction unit size.

If a prediction mode of a current partition unit is an intra mode,‘RootTuSize’ may be determined by using Equation (3) below. In Equation(3), ‘PartitionSize’ denotes the size of the current partition unit.

RootTuSize=min(MaxTransformSize, PartitionSize)  (3)

In other words, if the current prediction mode is the intra mode, thetransformation unit size ‘RootTuSize’ when the TU size flag is 0 may bea smaller value from among the maximum transformation unit size and thesize of the current partition unit.

However, the current maximum transformation unit size ‘RootTuSize’ thatvaries according to the type of a prediction mode in a partition unit isjust an example and the present disclosure is not limited thereto.

According to the video encoding method based on coding units having atree structure as described with reference to FIGS. 8 through 20, imagedata of the space domain is encoded for each coding unit of a treestructure. According to the video decoding method based on coding unitshaving a tree structure, decoding is performed for each MCU toreconstruct image data of the space domain. Thus, a picture and a videothat is a picture sequence may be reconstructed. The reconstructed videomay be reproduced by a reproducing apparatus, stored in a storagemedium, or transmitted through a network.

Also, SAO parameters may be signaled with respect to each picture, eachslice, each MCU, each of coding units having a tree structure, eachprediction unit of the coding units, or each transformation unit of thecoding units. For example, pixel values of reconstructed pixels of eachMCU may be adjusted by using offset values reconstructed based onreceived SAO parameters, and thus an MCU having a minimized errorbetween an original block and the MCU may be reconstructed.

For convenience of description, the video encoding method according tooperation of a sample offset, which is described above with reference toFIGS. 1A through 20, will be referred to as a ‘video encoding methodaccording to the present disclosure’. In addition, the video decodingmethod according to operation of a sample offset, which is describedabove with reference to FIGS. 1A through 20, will be referred to as a‘video decoding method according to the present disclosure’.

Also, a video encoding apparatus including the SAO encoding apparatus10, the video encoding apparatus 100, or the image encoder 400, which isdescribed above with reference to FIGS. 1A through 20, will be referredto as a ‘video encoding apparatus according to the present disclosure’.In addition, a video decoding apparatus including the video decodingapparatus 20, the video decoding apparatus 200, or the image decoder500, which is described above with reference to FIGS. 1A through 20,will be referred to as a ‘video decoding apparatus according to thepresent disclosure’.

A computer-readable recording medium storing a program, e.g., a disc26000, according to exemplary embodiments of the present disclosure willnow be described in detail.

FIG. 21 illustrates a diagram of a physical structure of the disc 26000in which a program is stored, according to exemplary embodiments of thepresent disclosure. The disc 26000, which is a storage medium, may be ahard drive, a compact disc-read only memory (CD-ROM) disc, a Blu-raydisc, or a digital versatile disc (DVD). The disc 26000 includes aplurality of concentric tracks Tr that are each divided into a specificnumber of sectors Se in a circumferential direction of the disc 26000.In a specific region of the disc 26000, a program that executes thequantization parameter determination method, the video encoding method,and the video decoding method described above may be assigned andstored.

A computer system embodied using a storage medium that stores a programfor executing the video encoding method and the video decoding method asdescribed above will now be described with reference to FIG. 22.

FIG. 22 illustrates a diagram of a disc drive 26800 for recording andreading a program by using the disc 26000. A computer system 26700 maystore a program that executes at least one of a video encoding methodand a video decoding method according to exemplary embodiments of thepresent disclosure, in the disc 26000 via the disc drive 26800. To runthe program stored in the disc 26000 in the computer system 26700, theprogram may be read from the disc 26000 and be transmitted to thecomputer system 26700 by using the disc drive 26700.

The program that executes at least one of a video encoding method and avideo decoding method according to exemplary embodiments of the presentdisclosure may be stored not only in the disc 26000 illustrated in FIG.21 or 22 but also in a memory card, a ROM cassette, or a solid statedrive (SSD).

A system to which the video encoding method and a video decoding methoddescribed above are applied will be described below.

FIG. 23 illustrates a diagram of an overall structure of a contentsupply system 11000 for providing a content distribution service. Aservice area of a communication system is divided intopredetermined-sized cells, and wireless base stations 11700, 11800,11900, and 12000 are installed in these cells, respectively.

The content supply system 11000 includes a plurality of independentdevices. For example, the plurality of independent devices, such as acomputer 12100, a personal digital assistant (PDA) 12200, a video camera12300, and a mobile phone 12500, are connected to the Internet 11100 viaan internet service provider 11200, a communication network 11400, andthe wireless base stations 11700, 11800, 11900, and 12000.

However, the content supply system 11000 is not limited to asillustrated in FIG. 24, and devices may be selectively connectedthereto. The plurality of independent devices may be directly connectedto the communication network 11400, not via the wireless base stations11700, 11800, 11900, and 12000.

The video camera 12300 is an imaging device, e.g., a digital videocamera, which is capable of capturing video images. The mobile phone12500 may employ at least one communication method from among variousprotocols, e.g., Personal Digital Communications (PDC), Code DivisionMultiple Access (CDMA), Wideband-Code Division Multiple Access (W-CDMA),Global System for Mobile Communications (GSM), and Personal HandyphoneSystem (PHS).

The video camera 12300 may be connected to a streaming server 11300 viathe wireless base station 11900 and the communication network 11400. Thestreaming server 11300 allows content received from a user via the videocamera 12300 to be streamed via a real-time broadcast. The contentreceived from the video camera 12300 may be encoded using the videocamera 12300 or the streaming server 11300. Video data captured by thevideo camera 12300 may be transmitted to the streaming server 11300 viathe computer 12100.

Video data captured by a camera 12600 may also be transmitted to thestreaming server 11300 via the computer 12100. The camera 12600 is animaging device capable of capturing both still images and video images,similar to a digital camera. The video data captured by the camera 12600may be encoded using the camera 12600 or the computer 12100. Softwarethat performs encoding and decoding video may be stored in acomputer-readable recording medium, e.g., a CD-ROM disc, a floppy disc,a hard disc drive, an SSD, or a memory card, which may be accessible bythe computer 12100.

If video data is captured by a camera built in the mobile phone 12500,the video data may be received from the mobile phone 12500.

The video data may also be encoded by a large scale integrated circuit(LSI) system installed in the video camera 12300, the mobile phone12500, or the camera 12600.

The content supply system 11000 may encode content data recorded by auser using the video camera 12300, the camera 12600, the mobile phone12500, or another imaging device, e.g., content recorded during aconcert, and transmit the encoded content data to the streaming server11300. The streaming server 11300 may transmit the encoded content datain a type of a streaming content to other clients that request thecontent data.

The clients are devices capable of decoding the encoded content data,e.g., the computer 12100, the PDA 12200, the video camera 12300, or themobile phone 12500. Thus, the content supply system 11000 allows theclients to receive and reproduce the encoded content data. Also, thecontent supply system 11000 allows the clients to receive the encodedcontent data and decode and reproduce the encoded content data in realtime, thereby enabling personal broadcasting.

Encoding and decoding operations of the plurality of independent devicesincluded in the content supply system 11000 may be similar to those of avideo encoding apparatus and a video decoding apparatus according toexemplary embodiments of the present disclosure.

The mobile phone 12500 included in the content supply system 11000according to exemplary embodiments of the present disclosure will now bedescribed in greater detail with referring to FIGS. 24 and 25.

FIG. 24 illustrates an external structure of the mobile phone 12500 towhich a video encoding method and a video decoding method are applied,according to exemplary embodiments of the present disclosure. The mobilephone 12500 may be a smart phone, the functions of which are not limitedand a large number of the functions of which may be changed or expanded.

The mobile phone 12500 includes an internal antenna 12510 via which aradio-frequency (RF) signal may be exchanged with the wireless basestation 12000 of FIG. 21, and includes a display screen 12520 fordisplaying images captured by a camera 12530 or images that are receivedvia the antenna 12510 and decoded, e.g., a liquid crystal display (LCD)or an organic light-emitting diode (OLED) screen. The mobile phone 12500includes an operation panel 12540 including a control button and a touchpanel. If the display screen 12520 is a touch screen, the operationpanel 12540 further includes a touch sensing panel of the display screen12520. The mobile phone 12500 includes a speaker 12580 for outputtingvoice and sound or another type of sound outputter, and a microphone12550 for inputting voice and sound or another type sound inputter. Themobile phone 12500 further includes the camera 12530, such as acharge-coupled device (CCD) camera, to capture video and still images.The mobile phone 12500 may further include a storage medium 12570 forstoring encoded/decoded data, e.g., video or still images captured bythe camera 12530, received via email, or obtained according to variousways; and a slot 12560 via which the storage medium 12570 is loaded intothe mobile phone 12500. The storage medium 12570 may be a flash memory,e.g., a secure digital (SD) card or an electrically erasable andprogrammable read only memory (EEPROM) included in a plastic case.

FIG. 25 illustrates an internal structure of the mobile phone 12500,according to exemplary embodiments of the present disclosure. Tosystemically control parts of the mobile phone 12500 including thedisplay screen 12520 and the operation panel 12540, a power supplycircuit 12700, an operation input controller 12640, an image encoder12720, a camera interface 12630, an LCD controller 12620, an imagedecoder 12690, a multiplexer/demultiplexer 12680, a recorder/reader12670, a modulator/demodulator 12660, and a sound processor 12650 areconnected to a central controller 12710 via a synchronization bus 12730.

If a user operates a power button and sets from a ‘power off’ state to a‘power on’ state, the power supply circuit 12700 supplies power to allthe parts of the mobile phone 12500 from a battery pack, thereby settingthe mobile phone 12500 in an operation mode.

The central controller 12710 includes a central processing unit (CPU), aROM, and a RAM.

While the mobile phone 12500 transmits communication data to theoutside, a digital signal is generated by the mobile phone 12500 undercontrol of the central controller 12710. For example, the soundprocessor 12650 may generate a digital sound signal, the image encoder12720 may generate a digital image signal, and text data of a messagemay be generated via the operation panel 12540 and the operation inputcontroller 12640. When a digital signal is transmitted to themodulator/demodulator 12660 under control of the central controller12710, the modulator/demodulator 12660 modulates a frequency band of thedigital signal, and a communication circuit 12610 performsdigital-to-analog conversion (DAC) and frequency conversion on thefrequency band-modulated digital sound signal. A transmission signaloutput from the communication circuit 12610 may be transmitted to avoice communication base station or the wireless base station 12000 viathe antenna 12510.

For example, when the mobile phone 12500 is in a conversation mode, asound signal obtained via the microphone 12550 is transformed into adigital sound signal by the sound processor 12650, under control of thecentral controller 12710. The digital sound signal may be transformedinto a transformation signal via the modulator/demodulator 12660 and thecommunication circuit 12610, and may be transmitted via the antenna12510.

When a text message, e.g., email, is transmitted in a data communicationmode, text data of the text message is input via the operation panel12540 and is transmitted to the central controller 12710 via theoperation input controller 12640. Under control of the centralcontroller 12710, the text data is transformed into a transmissionsignal via the modulator/demodulator 12660 and the communication circuit12610 and is transmitted to the wireless base station 12000 via theantenna 12510.

To transmit image data in the data communication mode, image datacaptured by the camera 12530 is provided to the image encoder 12720 viathe camera interface 12630. The captured image data may be directlydisplayed on the display screen 12520 via the camera interface 12630 andthe LCD controller 12620.

A structure of the image encoder 12720 may correspond to that of theabove-described video encoding method according to the presentdisclosure. The image encoder 12720 may transform the image datareceived from the camera 12530 into compressed and encoded image databased on the above-described video encoding method according to thepresent disclosure, and then output the encoded image data to themultiplexer/demultiplexer 12680. During a recording operation of thecamera 12530, a sound signal obtained by the microphone 12550 of themobile phone 12500 may be transformed into digital sound data via thesound processor 12650, and the digital sound data may be transmitted tothe multiplexer/demultiplexer 12680.

The multiplexer/demultiplexer 12680 multiplexes the encoded image datareceived from the image encoder 12720, together with the sound datareceived from the sound processor 12650. A result of multiplexing thedata may be transformed into a transmission signal via themodulator/demodulator 12660 and the communication circuit 12610, and maythen be transmitted via the antenna 12510.

While the mobile phone 12500 receives communication data from theoutside, frequency recovery and ADC are performed on a signal receivedvia the antenna 12510 to transform the signal into a digital signal. Themodulator/demodulator 12660 modulates a frequency band of the digitalsignal. The frequency-band modulated digital signal is transmitted tothe video decoding unit 12690, the sound processor 12650, or the LCDcontroller 12620, according to the type of the digital signal.

In the conversation mode, the mobile phone 12500 amplifies a signalreceived via the antenna 12510, and obtains a digital sound signal byperforming frequency conversion and ADC on the amplified signal. Areceived digital sound signal is transformed into an analog sound signalvia the modulator/demodulator 12660 and the sound processor 12650, andthe analog sound signal is output via the speaker 12580, under controlof the central controller 12710.

When in the data communication mode, data of a video file accessed at anInternet website is received, a signal received from the wireless basestation 12000 via the antenna 12510 is output as multiplexed data viathe modulator/demodulator 12660, and the multiplexed data is transmittedto the multiplexer/demultiplexer 12680.

To decode the multiplexed data received via the antenna 12510, themultiplexer/demultiplexer 12680 demultiplexes the multiplexed data intoan encoded video data stream and an encoded audio data stream. Via thesynchronization bus 12730, the encoded video data stream and the encodedaudio data stream are provided to the video decoding unit 12690 and thesound processor 12650, respectively.

A structure of the image decoder 12690 may correspond to that of theabove-described video decoding method according to the presentdisclosure. The image decoder 12690 may decode the encoded video data toobtain reconstructed video data and provide the reconstructed video datato the display screen 12520 via the LCD controller 12620, by using theabove-described video decoding method according to the presentdisclosure.

Thus, the data of the video file accessed at the Internet website may bedisplayed on the display screen 12520. At the same time, the soundprocessor 12650 may transform audio data into an analog sound signal,and provide the analog sound signal to the speaker 12580. Thus, audiodata contained in the video file accessed at the Internet website mayalso be reproduced via the speaker 12580.

The mobile phone 12500 or another type of communication terminal may bea transceiving terminal including both a video encoding apparatus and avideo decoding apparatus according to exemplary embodiments of thepresent disclosure, may be a transceiving terminal including only thevideo encoding apparatus, or may be a transceiving terminal includingonly the video decoding apparatus.

A communication system according to the present disclosure is notlimited to the communication system described above with reference toFIG. 24. For example, FIG. 26 illustrates a digital broadcasting systememploying a communication system, according to exemplary embodiments ofthe present disclosure. The digital broadcasting system of FIG. 26 mayreceive a digital broadcast transmitted via a satellite or a terrestrialnetwork by using a video encoding apparatus and a video decodingapparatus according to exemplary embodiments of the present disclosure.

In particular, a broadcasting station 12890 transmits a video datastream to a communication satellite or a broadcasting satellite 12900 byusing radio waves. The broadcasting satellite 12900 transmits abroadcast signal, and the broadcast signal is transmitted to a satellitebroadcast receiver via a household antenna 12860. In every house, anencoded video stream may be decoded and reproduced by a TV receiver12810, a set-top box 12870, or another device.

When a video decoding apparatus according to exemplary embodiments ofthe present disclosure is implemented in a reproducing apparatus 12830,the reproducing apparatus 12830 may parse and decode an encoded videostream recorded on a storage medium 12820, such as a disc or a memorycard to reconstruct digital signals. Thus, the reconstructed videosignal may be reproduced, for example, on a monitor 12840.

In the set-top box 12870 connected to the antenna 12860 for asatellite/terrestrial broadcast or a cable antenna 12850 for receiving acable television (TV) broadcast, a video decoding apparatus according toexemplary embodiments of the present disclosure may be installed. Dataoutput from the set-top box 12870 may also be reproduced on a TV monitor12880.

As another example, a video decoding apparatus according to exemplaryembodiments of the present disclosure may be installed in the TVreceiver 12810 instead of the set-top box 12870.

An automobile 12920 that has an appropriate antenna 12910 may receive asignal transmitted from the satellite 12900 or the wireless base station11700 of FIG. 21. A decoded video may be reproduced on a display screenof an automobile navigation system 12930 installed in the automobile12920.

A video signal may be encoded by a video encoding apparatus according toexemplary embodiments of the present disclosure and may then be storedin a storage medium. In particular, an image signal may be stored in aDVD disc 12960 by a DVD recorder or may be stored in a hard disc by ahard disc recorder 12950. As another example, the video signal may bestored in an SD card 12970. If the hard disc recorder 12950 includes avideo decoding apparatus according to exemplary embodiments of thepresent disclosure, a video signal recorded on the DVD disc 12960, theSD card 12970, or another storage medium may be reproduced on the TVmonitor 12880.

The automobile navigation system 12930 may not include the camera 12530of FIG. 24, and the camera interface 12630 and the image encoder 12720of FIG. 25. For example, the computer 12100 and the TV receiver 12810may not include the camera 12530, the camera interface 12630, and theimage encoder 12720.

FIG. 27 illustrates a diagram illustrating a network structure of acloud computing system using a video encoding apparatus and a videodecoding apparatus, according to exemplary embodiments of the presentdisclosure.

The cloud computing system may include a cloud computing server 14000, auser database (DB) 14100, a plurality of computing resources 14200, anda user terminal.

The cloud computing system provides an on-demand outsourcing service ofthe plurality of computing resources 14200 via a data communicationnetwork, e.g., the Internet, in response to a request from the userterminal. Under a cloud computing environment, a service providerprovides users with desired services by combining computing resources atdata centers located at physically different locations by usingvirtualization technology. A service user does not have to installcomputing resources, e.g., an application, a storage, an operatingsystem (OS), and security, into his/her own terminal in order to usethem, but may select and use desired services from among services in avirtual space generated through the virtualization technology, at adesired point in time.

A user terminal of a specified service user is connected to the cloudcomputing server 14000 via a data communication network including theInternet and a mobile telecommunication network. User terminals may beprovided cloud computing services, and particularly video reproductionservices, from the cloud computing server 14000. The user terminals maybe various types of electronic devices capable of being connected to theInternet, e.g., a desktop PC 14300, a smart TV 14400, a smart phone14500, a notebook computer 14600, a portable multimedia player (PMP)14700, a tablet PC 14800, and the like.

The cloud computing server 14000 may combine the plurality of computingresources 14200 distributed in a cloud network and provide userterminals with a result of combining. The plurality of computingresources 14200 may include various data services, and may include datauploaded from user terminals. As described above, the cloud computingserver 14000 may provide user terminals with desired services bycombining video database distributed in different regions according tothe virtualization technology.

User information about users who have subscribed for a cloud computingservice is stored in the user DB 14100. The user information may includelogging information, addresses, names, and personal credit informationof the users. The user information may further include indexes ofvideos. Here, the indexes may include a list of videos that have alreadybeen reproduced, a list of videos that are being reproduced, a pausingpoint of a video that was being reproduced, and the like.

Information about a video stored in the user DB 14100 may be sharedbetween user devices. For example, when a video service is provided tothe notebook computer 14600 in response to a request from the notebookcomputer 14600, a reproduction history of the video service is stored inthe user DB 14100. When a request to reproduce this video service isreceived from the smart phone 14500, the cloud computing server 14000searches for and reproduces this video service, based on the user DB14100. When the smart phone 14500 receives a video data stream from thecloud computing server 14000, a process of reproducing video by decodingthe video data stream is similar to an operation of the mobile phone12500 described above with reference to FIG. 24.

The cloud computing server 14000 may refer to a reproduction history ofa desired video service, stored in the user DB 14100. For example, thecloud computing server 14000 receives a request to reproduce a videostored in the user DB 14100, from a user terminal. If this video wasbeing reproduced, then a method of streaming this video, performed bythe cloud computing server 14000, may vary according to the request fromthe user terminal, i.e., according to whether the video will bereproduced, starting from a start thereof or a pausing point thereof.For example, if the user terminal requests to reproduce the video,starting from the start thereof, the cloud computing server 14000transmits streaming data of the video starting from a first framethereof to the user terminal. If the user terminal requests to reproducethe video, starting from the pausing point thereof, the cloud computingserver 14000 transmits streaming data of the video starting from a framecorresponding to the pausing point, to the user terminal.

In this case, the user terminal may include a video decoding apparatusas described above with reference to FIGS. 1A through 20. As anotherexample, the user terminal may include a video encoding apparatus asdescribed above with reference to FIGS. 1A through 20. Alternatively,the user terminal may include both the video decoding apparatus and thevideo encoding apparatus as described above with reference to FIGS. 1Athrough 20.

Various applications of a video encoding method, a video decodingmethod, a video encoding apparatus, and a video decoding apparatusaccording to exemplary embodiments of the present disclosure describedabove with reference to FIGS. 1A through 20 have been described abovewith reference to FIGS. 21 to 27. However, methods of storing the videoencoding method and the video decoding method in a storage medium ormethods of implementing the video encoding apparatus and the videodecoding apparatus in a device, according to various exemplaryembodiments of the present disclosure, are not limited to the exemplaryembodiments described above with reference to FIGS. 21 to 27.

In the present specification, an expression “A may include one of a1,a2, and a3” broadly means that an exemplary sub element of the element Ais a1, a2, or a3.

The above expression does not limit a sub element of the element A toa1, a2, or a3. Therefore, it should be noted that the above expressionshould not be construed to exclude elements other than a1, a2, and a3from sub elements of the element A.

Also, the above expression means that the element A may include a1, mayinclude a2, or may include a3. The above expression does not mean thatsub elements of the element A are selectively determined in a certaingroup. For example, it should be noted that the above expression shouldnot be construed as that a1, a2, or a3 selected from the groupconsisting of a1, a2, and a3 forms the element A.

Furthermore, in the present specification, an expression “at least oneof a1, a2, and a3” denotes one of a1; a2; a3; a1 and a2; a1 and a3; a2and a3; and a1, a2, and a3.

Therefore, it should be noted that, unless defined as “at least one ofa1, at least one of a2, or (and) at least one of a3”, the expression “atleast one of a1, a2, and a3” is not construed as “at least one of a1, atleast one of a2, or (and) at least one of a3”.

The exemplary embodiments according to the present disclosure may bewritten as computer programs and may be implemented in general-usedigital computers that execute the programs using a computer-readablerecording medium. Examples of the computer-readable recording mediuminclude magnetic storage media (e.g., ROM, floppy discs, hard discs,etc.) and optical recording media (e.g., CD-ROMs, or DVDs).

While the present disclosure has been particularly shown and describedwith reference to exemplary embodiments thereof, it will be understoodby one of ordinary skill in the art that various changes in form anddetails may be made therein without departing from the spirit and scopeof the disclosure as defined by the following claims. The exemplaryembodiments should be considered in a descriptive sense only and not forpurposes of limitation. Therefore, the scope of the disclosure isdefined not by the detailed description of the disclosure but by thefollowing claims, and all differences within the scope will be construedas being included in the present disclosure.

1. A method of a sample adaptive offset (SAO) decoding, the methodcomprising: obtaining context-encoded leftward SAO merge information andcontext-encoded upward SAO merge information from a bitstream of amaximum coding unit (MCU); obtaining SAO on/off information from SAOtype information of the MCU, by performing context decoding on thebitstream; obtaining absolute offset value information of the MCU byperforming bypass decoding on the bitstream in response to determiningthat the SAO on/off information indicates to perform SAO operation; andoutputting a reconstructed block of the MCU by applying the absoluteoffset value information to reconstructed samples of the MCU, wherein:in response to determining that the SAO type information indicates aband offset type, band position information of the MCU is obtained byperforming bypass decoding on the bitstream, and the reconstructed blockof the MCU is output by applying the absolute offset value informationcorresponding to the band position information to the reconstructedsamples of the MCU, in response to determining that the SAO typeinformation indicates an edge offset type, edge class information of theMCU is obtained by performing bypass decoding on the bitstream, and thereconstructed block of the MCU is output by applying the absolute offsetvalue information corresponding to the edge class information to thereconstructed samples of the MCU, the SAO type information includesfirst SAO type information for luma components of the MCU and second SAOtype information for chroma components of the MCU, and the second SAOtype information is obtained for Cr components of the MCU from thebitstream, and the second SAO type information is used for Cb componentsof the MCU, and the edge class information includes first edge classinformation for luma components of the MCU and second edge classinformation for chroma components of the MCU, and the second edge classinformation is obtained for Cr components of the MCU from the bitstream,and the second edge class information is used for Cb components of theMCU.
 2. A method of a sample adaptive offset (SAO) encoding, the methodcomprising: generating SAO type information of a maximum coding unit(MCU) including SAO on/off information by performing context encoding onthe SAO on/off information indicating whether SAO operation is performedon the MCU; performing bypass encoding on absolute offset valueinformation generated for performing SAO operation of the MCU; and whenthe SAO type information is generated according to a band offset type,performing bypass encoding on band position information of the MCU,wherein the absolute offset value information corresponds to the bandposition information, when the SAO type information is generatedaccording to an edge offset type, performing bypass encoding on edgeclass information of the MCU, the absolute offset value informationcorresponds to the edge class, wherein, the SAO type informationincludes first SAO type information for luma components of the MCU andsecond SAO type information for chroma components of the MCU, and thesecond SAO type information is encoded for Cr components and Cbcomponents of the MCU, and the edge class information includes firstedge class information for luma components of the MCU and second edgeclass information for chroma components of the MCU, and the second edgeclass information is encoded for Cr components and Cb components of theMCU.
 3. A non-transitory computer-readable storage medium storing abitstream, the bitstream comprising: SAO type information of a maximumcoding unit (MCU), including SAO on/off information generated byperforming context encoding, the SAO on/off information indicatingwhether SAO operation is performed on the MCU; and absolute offset valueinformation generated, by performing bypass encoding, for performing SAOoperation of the MCU, wherein: when the SAO type information isgenerated according to a band offset type, the bitstream furtherincludes band position information of the MCU, generated by performingbypass encoding, following at least one of the absolute offset valueinformation and sign information corresponding to the absolute offsetvalue information, when the SAO type information is generated accordingto an edge offset type, the bitstream further includes edge classinformation of the MCU, generated by performing bypass encoding,following the absolute offset value information corresponding to theedge class, wherein, the SAO type information includes first SAO typeinformation for luma components of the MCU and second SAO typeinformation for chroma components of the MCU, and the second SAO typeinformation is encoded for Cr components and Cb components of the MCU.